我的共享服务在名为bootstrapper的项目中启动和停止脚本(在脚本文件夹中)。该项目还有一些引导Java代码。
我有一个服务,它对bootstrapper项目有依赖性。我想让maven汇编会话进入bootstrapper jar,拉出启动和停止脚本并将它们放在服务二进制文件的根目录中(通过maven-filtering插件运行它们)
如果启动和停止脚本在服务项目中,我会这样做:
<fileSets>
<fileSet>
<filtered>true</filtered>
<directory>${project.build.scriptSourceDirectory}</directory>
<outputDirectory>/</outputDirectory>
<fileMode>755</fileMode>
<directoryMode>755</directoryMode>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<fileMode>755</fileMode>
<outputDirectory>/lib</outputDirectory>
<useProjectArtifact>true</useProjectArtifact>
<scope>runtime</scope>
</dependencySet>
</dependencySets>
但是,它们位于bootstrapper项目中(需要留在那里)...所以如何在maven程序集中提取它们?
答案 0 :(得分:1)
您可以在程序集插件中使用unpackOptions
includes
dependencySet
来满足您的需求,请参阅:http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html
答案 1 :(得分:0)
为了扩展adamretter的答案,以下是我如何做到这一点的一个例子:
<dependencySet>
<fileMode>755</fileMode>
<includes>
<include>mygroup:bootstrapper</include>
</includes>
<outputDirectory>/</outputDirectory>
<outputFileNameMapping></outputFileNameMapping>
<unpack>true</unpack>
<unpackOptions>
<includes>
<include>start.sh</include>
<include>stop.sh</include>
</includes>
<filtered>true</filtered>
</unpackOptions>
</dependencySet>