2017-05-05 27 views
1

我需要将一个jar包A及其所有依赖项B.jar,C.jar等打包成一个扁平的zip文件,即我想创建一个工件作为拉链(或罐),其具有所述文件结构将一个jar包及其依赖项打包成一个侧面神器(不生成一个胖jar)

A.jar 
B.jar 
C.jar 
... 

并将其部署为侧伪影为A.jar。请注意,工件不应该解压缩,而只是并排放置在侧面工件中,而没有任何目录结构。

我如何通过Maven实现这一目标?

原因是我们的生产环境需要获取一个解压到目录中的zip文件。之后,一个指定的Main类被启动。

+0

您是否已经使用程序集插件尝试了一些东西? – Tome

+0

不,我想我可以通过使用dependency-copy和assembly-plugin来构建一些东西,但如果有更简单的东西,我不想通过复制文件来重新发明轮子。 –

回答

1

如果你有一个包含已经依赖的pom文件,你可以使用maven-assembly-plugin和一个合适的程序集描述符,并且不需要使用maven-dependency-plugin来复制一些东西。你需要有一个装配描述符看起来像这样:

<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>xyz</id> 

    <formats> 
     <format>zip</format> 
    </formats> 

    <includeBaseDirectory>false</includeBaseDirectory> 

    <dependencySets> 
     <dependencySet> 
      <outputDirectory>/</outputDirectory> 
      <useProjectArtifact>false</useProjectArtifact> 
      <unpack>false</unpack> 
      <scope>compile</scope> 
     </dependencySet> 
    </dependencySets> 
</assembly> 

这将产生没有任何文件夹结构相应的zip文件,但包含它里面的依赖jar文件。

相关问题