Come sottolineato da @Shashank, è possibile fare in modo che Maven esegua anche il plug-in maven-jar. Ma questo creerà solo un JAR, che contiene solo le classi compilate, ma non le fonti webapp.
C'è modo semplice come farlo in un progetto multi-modulo con un semplice comando mvn clean install
senza richiamare esplicitamente mvn clean install jar:jar
:
basta aggiungere il maven-jar-plugin
al >build>plugins
e chiamano in fase di "pacchetto":
<project>
<packaging>war</packaging>
<!-- .. -->
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<classifier>classes</classifier>
</configuration>
<executions>
<execution>
<id>package-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Questo creerà un grande artefatto .war e un piccolo -classes.jar.
Aggiornamento 2017/06/15: Se d'altra parte, è necessario un copia esatta del file di guerra (non solo le classi Java confezionati), che è una specie di mascherato come un file JAR , è possibile utilizzare una combinazione di maven-dependency-plugin
e maven-install-plugin
per creare una copia JAR di una GUERRA. (Mi è capitato di avere bisogno di una tale soluzione - non chiedere perché;))
Creare un nuovo modulo che è dependend sul modulo di guerra:
<project>
<!-- ... -->
<dependencies>
<!-- ... -->
<dependency>
<groupId>your-group-id-here</groupId>
<artifactId>your-war-artifact-id-here</artifactId>
<version>${project.version}</version>
<type>war</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
</execution>
</executions>
<configuration>
<artifactItems>
<artifactItem>
<groupId>your-group-id-here</groupId>
<artifactId>your-war-artifact-id-here</artifactId>
<version>${project.version}</version>
<type>war</type>
<overWrite>true</overWrite>
<destFileName>jar-copy-of-war.jar</destFileName>
</artifactItem>
</artifactItems>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
</configuration>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<executions>
<execution>
<id>install-copy-of-war</id>
<phase>install</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<packaging>jar</packaging>
<classifier>copy-of-war</classifier>
<artifactId>${project.artifactId}</artifactId>
<groupId>your-group-id-here</groupId>
<version>${project.version}</version>
<file>${project.build.directory}/dependency/jar-copy-of-war.jar</file>
<generatePom>true</generatePom>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Questo creerà una copia del war, chiamalo "--copy-of-war.jar", mentre "copy-of-war" è il classificatore per questo modulo.
possibile duplicato di [Maven distribuisci file jar aggiuntivo] (http://stackoverflow.com/questions/754216/maven-deploy-additional-jar-file) –