我正在尝试创建一个依赖于内置程序集jar-with-dependencies输出的程序集。生成的程序集特定于体系结构。
例如,我想创建一个ZIP,其中包含jar-with-dependencies的JAR输出,外加一个脚本文件和一个库目录。
我试过以下几种方法。在pom.xml文件中:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<descriptors>
<descriptor>src/main/assembly/linux64.xml</descriptor>
<descriptor>src/main/assembly/windows64.xml</descriptor>
</descriptors>
<archive>
<manifest>
<mainClass>es.entrees.BoxOffice</mainClass>
</manifest>
</archive>
</configuration>
</plugin>然后是描述符文件。其中之一是:
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
<id>linux64</id>
<formats>
<format>zip</format>
</formats>
<files>
<file>
<source>target/${project.artifactId}-${project.version}-jar-with-dependencies.jar</source>
<outputDirectory>/</outputDirectory>
</file>
</files>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
...
</depdendencySets>
</assembly>但是,自定义描述符首先运行,而来自jar-with-dependencies的输出还没有运行。
我应该使用子模块吗?
发布于 2015-12-07 14:39:01
您需要对maven-assembly-plugin执行2次
prepare-package阶段,将创建jar-with-dependencies。package,将创建zip文件。在构建生命周期中,prepare-package阶段在package阶段之前运行,因此这确保JAR是在ZIP之前构建的。此外,它还记录了这样一个事实,即创建JAR将准备最后的打包,即ZIP文件。
样本pom.xml将是:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>make-jar-with-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>es.entrees.BoxOffice</mainClass>
</manifest>
</archive>
</configuration>
</execution>
<execution>
<id>make-zip</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/main/assembly/linux64.xml</descriptor>
<descriptor>src/main/assembly/windows64.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>通过下面的操作,使用mvn clean install运行Maven将正确创建ZIP。
https://stackoverflow.com/questions/34136038
复制相似问题