要创建发行版,我决定使用maven程序集插件。但就我而言,我还需要来自其他项目的资源或仅仅是工件。让我们在这里使用一个简单的示例,我有信心以后可以自己解决更复杂的示例。
我们在本地存储库服务器上有一个zip工件,已配置maven使用。该zip文件具有简单的层次结构,并包含一个本机代码包装器,一个jar文件,自述文件和示例配置。对于分发包,我们需要前两个。包装程序应放在bin /目录中,而jar文件应放在lib /目录中。但是,仅在组装步骤中才需要zip文件。我不需要它来编译或测试。在阅读有关依赖范围的文档时,我没有找到与此特定用例相匹配的文档。其他问题在下面的代码中描述:当我不将zip指定为依赖项时,以后将无法使用工件。而且我无法将解压缩的文件放在正确的位置。
也许我的整个方法是错误的?我希望听到您的意见。
pom.xml
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<descriptors>
<descriptor>src/assembly/dist.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>dist</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
dist.xml
<dependencySets>
<dependencySet>
<includes>
<!-- does only work when specified as a dependency in pom.xml -->
<include>my:archive</include>
</includes>
<outputDirectory>unpacked</outputDirectory>
<unpack>true</unpack>
<unpackOptions>
<includes>
<include>wrapper</include>
<include>extraLib.jar</include>
<!-- can't move or rename -->
</includes>
</unpackOptions>
<useProjectArtifact>false</useProjectArtifact>
</dependencySet>
</dependencySets>
我通过直接使用maven-dependency-plugin而不是maven-assembly插件做了几次类似的事情。
http://maven.apache.org/plugins/maven-dependency-plugin/unpack-mojo.html
这里是另一个类似的问题,Unzip dependency in maven