我有一个多模块项目。 每个模块都打包在自己/目标文件夹中的jar / war文件中。
我想把每个模块jar / war文件和一些配置文件,并把所有内容放在一个zip中。
怎么做?我尝试使用程序集插件,但是到目前为止我设法完成的是各自/目标文件夹中每个模块的zip,所以非常没用^^
答案 0 :(得分:5)
首先是创建一个单独的模块,让我们称之为dist
将父项添加为父模块,并将您希望在生成的zip文件中看到的所有模块添加为依赖项,包括类型war
,jar
等。
应该给出<packaging>pom</packaging>
因为这个模块不包含任何需要编译的java代码等等。我们只想创建包含给定依赖项的zip文件。
<project ..>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>module-1</groupId>
<artifactId>module-1-artifact</artifactId>
<version>${project.version}</version>
<type>war</type>
</dependency>
<dependency>
<groupId>module-2</groupId>
<artifactId>module-2-artifact</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>make-bundles</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>proj1-assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
添加以下描述符:
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>dist-assembly</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<outputDirectory>/</outputDirectory>
<useProjectArtifact>false</useProjectArtifact>
<unpack>false</unpack>
</dependencySet>
</dependencySets>
</assembly>
需要依赖关系以确保Maven正确计算执行顺序。
如果您需要该zip文件中的补充配置,您可以将这些文件添加到src/main/config
中,并在汇编描述符中添加fileSets部分。