Fabriciojf.com Wiki
  • FAQ
    • APIs
      • FAQs Favoritos

        Qual é a sua dúvida?

        •  Página inicial do FAQ
        • Java
        • Problem creating jar: [...]/target/classes (Is a directory)

        Problem creating jar: [...]/target/classes (Is a directory)

        Problema gerando assembly:assembly no Maven

        Quando se empacota um .jar no maven através do comando assembly:assembly, dependendo da configuração, o maven gera, além do .jar habitual, um arquivo .zip contendo todas as libs utilizadas pelo projeto. Estava estudano esse comando assembly:assembly, e encontrei o seguinte erro:

        Embedded error: Problem creating jar: [...]/target/classes (Is a directory)

        Percebi que o problema ocorria em projetos sem nenhuma dependência, ou apenas o junit, que é declarado com o escopo test. O que é muito justo, afinal a minha configuração era para gerar o tal .zip com as dependências, como o projeto não tinha nenhuma, o erro já era previsto. Para solucionar adicionei uma tag  para um jar bem pequeno e o comando foi executado com sucesso, ou então simplesmente retirei o comando porque ele não era necessário.

        Configurações do projeto

        Para adicionar o plugin maven-assembly no projeto, basta declará-lo no pom.xml dizendo qual arquivo possui as configurações do assembly e criar o arquivo package.xml dentro da pasta onde ele se encontra, ex: /src/mais/assembly.

        maven-assembly-plugin

        <build>
                <plugins>            
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <version>2.2-beta-4</version>
                        <configuration>
                            <descriptors>
                                <descriptor>${basedir}/src/main/assembly/package.xml</descriptor>
                            </descriptors>
                        </configuration>
                    </plugin>
                <plugins>
        <build>

        Arquivo /src/main/assembly/package.xml

        <?xml version="1.0" encoding="UTF-8"?>
        <assembly>
          dist</id>
          <formats>
            <format>zip</format>
          </formats>
          <fileSets>    
            <fileSet>
              <directory>${basedir}/src/main/resources</directory>
              <outputDirectory>/</outputDirectory>
            </fileSet>
          </fileSets>
          <files>
            <file>
              <source>target/${project.artifactId}-${project.version}.jar</source>
              <outputDirectory>/</outputDirectory>
              <destName>${project.artifactId}.jar</destName>
            </file>
          </files>
          <dependencySets>
            <dependencySet>
              <useProjectArtifact>false</useProjectArtifact>
              <outputDirectory>lib</outputDirectory>
            </dependencySet>
          </dependencySets>
        </assembly>

        Com essas configurações, ao rodar o comando mvn assembly:assembly, será criado um pacote .zip dentro da pasta target do projeto contendo o .jar e as libs

         Página inicial do FAQ
        • FAQ
          • APIs
            • FAQs Favoritos

              © Copyright 2025 Fabriciojf.com  Criado por FábioCostaMKT   Pastes   Administração