1
resposta

como criar um uberjar com maven?

Boa tarde, estou migrando um projeto EAR composto por um projeto EJB e 3 projetos WAR. Como criar um uberjar desse projeto EJB e usá-lo como dependência para os demais???

Estou usando esse plugin no projeto EJB, mas não está dando certo.

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.4.3</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

Obrigado.

1 resposta

Olá Deleon, tudo bem?

Para criar um uberjar com Maven, você pode utilizar o plugin "maven-assembly-plugin". Com ele, você pode criar um arquivo jar que inclui todas as dependências do seu projeto, tornando-o autocontido e facilmente distribuível.

Para usá-lo, adicione o seguinte trecho de código no arquivo pom.xml do seu projeto EJB:

<build>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>3.2.0</version>
      <configuration>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
      </configuration>
      <executions>
        <execution>
          <id>make-assembly</id>
          <phase>package</phase>
          <goals>
            <goal>single</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

Com isso, ao executar o comando "mvn package", o plugin irá criar um arquivo jar com todas as dependências do seu projeto EJB.

Para utilizá-lo como dependência nos projetos WAR, basta adicioná-lo no arquivo pom.xml de cada projeto WAR:

<dependencies>
  <dependency>
    <groupId>seu.grupo.de.artefatos</groupId>
    <artifactId>seu-artefato-ejb</artifactId>
    <version>sua-versao</version>
  </dependency>
</dependencies>

Espero ter ajudado e bons estudos!