Возможным решением является создание пользовательского assembly с использованием maven-assembly-plugin
.
Следующий дескриптор объявляет сборку формата zip
. Он использует <dependencySet>
, чтобы объявить зависимость от WAR, упакованную с помощью сборки Maven. Эта WAR распакована, так что окончательный ZIP имеет тот же самый контент, содержащий WAR-файл.
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
<id>zip</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<includes>
<include>${project.groupId}:${project.artifactId}:war:${project.version}</include>
</includes>
<unpack>true</unpack>
</dependencySet>
</dependencySets>
</assembly>
Сохраните этот файл, for example в src/assembly/assembly.xml
. Затем, в вашем ПОМ, вы должны объявить выполнение этого плагина:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>make-zip</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/assembly/assembly.xml</descriptor>
</descriptors>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</execution>
</executions>
</plugin>
При вызове Maven с mvn clean install
, этот плагин будет выполнен, и он будет создавать разыскиваемого ZIP файл в папке target
.
Почему вы хотите создать ZIP вместо WAR? – Tunaki