我正在尝试使用 maven-assembly-plugin 生成一个 zip 文件程序集。我只剩下两个问题,我想知道是否可以仅使用配置来解决,但作为最后的手段,我也在考虑编写自己的 maven 插件来扩展 maven-assembly-plugin
两个缺失的部分是
将与包含模式匹配的每个依赖项放入其自己的
outputDirectory
.
这是我组装的相关部分<moduleSet> <binaries> <dependencySets> <dependencySet> <outputDirectory>module</outputDirectory> <useTransitiveDependencies>false</useTransitiveDependencies> <includes> <include>com.test.feature.*:*:jar</include> </includes> </dependencySet> </dependencySets> <unpack>false</unpack> </binaries> </moduleSet>
这会将具有 groupId 的模块的所有依赖项放在
com.test.feature.*
名为 module 的文件夹中。这对我有用,就像这样module/ com.test.feature.firstModule.jar com.test.feature.secondModule.jar
我需要的是一种将每个匹配的依赖项移动到自己的文件夹的方法,希望文件夹名称是依赖项的 artifactId(虽然不是强制性的)
firstModule/ com.test.feature.firstModule.jar secondModule/ com.test.feature.secondModule.jar
我知道我可以
dependencySet
为每个依赖项创建一个,但我的想法是尽可能面向未来。如果我为每个创建一个,我需要记住在未来为 com.test.feature 下的每个新工件创建一个新集。我最大(但盲目)的希望是某种属性 ${dependencyName} 将被每个依赖项替换,然后我可以在outputDirectory
生成一个 xml 文件,其中包含有关依赖项及其文件夹的信息,
例如<module dir="firstModule" version="1.0-SNAPSHOT /> <module dir="secondModule" version="2.1-SNAPSHOT />
生成的 xml 将成为 zip 程序集的一部分
这两件事,或者其中之一,可以用香草组装插件完成吗?如果没有,是否可以创建一个扩展另一个插件?我刚刚看到了从头开始创建插件的教程,而不是仅仅向标准插件之一添加功能