Maven 2 创建maven的zip存档;“目标”;目录
我希望为我的“target”目录(${project.build.directory)创建一个zip存档。对于这样一个简单的任务,使用maven assembly插件似乎有点过分(而且有点复杂-为什么我必须使用另一个文件,即assembly descriptor来完成这样的任务) 我无法在存储库中找到看似更简单的 是否有任何输入?如果您没有任何“特殊”如果需要生成的.zip文件,您可以使用预定义的Maven程序集描述符之一。预定义的程序集描述符使您可以轻松快速地创建特定的程序集,而无需提供自己的程序集描述符。假设您要使用Maven 2 创建maven的zip存档;“目标”;目录,maven-2,plugins,zip,Maven 2,Plugins,Zip,我希望为我的“target”目录(${project.build.directory)创建一个zip存档。对于这样一个简单的任务,使用maven assembly插件似乎有点过分(而且有点复杂-为什么我必须使用另一个文件,即assembly descriptor来完成这样的任务) 我无法在存储库中找到看似更简单的 是否有任何输入?如果您没有任何“特殊”如果需要生成的.zip文件,您可以使用预定义的Maven程序集描述符之一。预定义的程序集描述符使您可以轻松快速地创建特定的程序集,而无需提供自己的
bin
预定义描述符。然后在plu在POM的build
部分中,您可以添加以下内容
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<configuration>
<descriptorRefs>
<descriptorRef>bin</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
.如果预定义的程序集描述符不适合您的需要,则有三个选项:
使用maven汇编插件-maven zip插件从未出现,因为汇编插件可以完成zip插件所做的一切,更多信息,请参阅
使用maven antrun插件(可能还有附加zip的build helper插件)——有一个例子(这看起来比最后的汇编插件更详细)
编写您自己的插件-当您有汇编插件时,为什么要这样做
就我个人而言,我只会使用带有以下zip.xml
描述符的maven assembly插件:
<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>bin</id>
<baseDirectory>/</baseDirectory>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<directory>${project.build.directory}</directory>
</fileSet>
</fileSets>
</assembly>
箱子
/
拉链
${project.build.directory}
在您的POM中:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/zip.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- append to the packaging phase. -->
<goals>
<goal>single</goal> <!-- goals == mojos -->
</goals>
</execution>
</executions>
</plugin>
maven汇编插件
2.6
src/main/assembly/zip.xml
组装
包裹
单身
不错的选项。然而,在我的过程结束时,目标目录只包含一个exe文件和一个包含其他exe文件的目录—al linstallers。我只想将它们全部压缩在一起,所以您的问题是默认描述符会打包得比您需要的更多,例如工作文件夹的内容等。是c吗如果目标下有一个特定文件夹需要打包(例如,${project.build.directory}/installers
),但希望省略其他目录?或者您有其他目标吗?我已从${project.build.directory}中删除了所有不需要的文件和目录如果你没有比Pascal更好的建议,我想我只能创建他展示的“冗余”程序集文件,然后选择他的解决方案…不起作用-内置的“bin”使用。我不知道如何指向自定义的非内置。使用antrun插件比使用汇编插件有一个优势,因为它在zip中以不同的方式存储文件大小。如果您使用“ZipInputStream”读取zip并使用“getSize()'您将通过antrun创建的拉链获得入口大小,对于使用assembly创建的拉链,它将返回-1.jeejava.com/zip-file-using-maven-assembly-plugin/