2017-05-05 64 views
0

我有一个多模块项目。 每个模块都封装在他自己/目标文件夹中的jar/war文件中。如何在一个zip文件中打包多个模块?

我想把每个模块jar/war文件和一些配置文件,并把所有的东西放在一个zip文件。

如何做到这一点?我尝试使用汇编插件,但所有我设法做到目前为止是在各自的/目标文件夹中的每个模块的zip,所以很没用^^

+0

可能重复[什么是超级罐子?](http://stackoverflow.com/questions/11947037/what-is-an-uber-jar) –

回答

1

首先是创建一个单独的模块让我们称之为dist添加到父为新的模块,并添加你喜欢在生成的压缩文件中看到所有模块作为依赖包括类型warjar

<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部分。

+0

不明白为什么不接受这个答案:)谢谢,用它,投了票。 –

相关问题