我正在寻找一个(支持的)基于mvn
的命令,它将为我提供所有GroupID的列表:ArtifactID:版本(GAV),用于运行mvn package
命令的所有工件产生
对于单个模块Maven项目,没有父pom,这是微不足道的:你可以查看pom内部。
对于单个模块Maven项目,使用父pom,您可以使用help:effective-pom
,它将显示一个存在<version>
元素的pom文件。
对于一个多模块Maven项目(反应堆),你实际上可以做同样的事情(不这么认为,现在通过尝试来学习)。这将允许解析(多个)<project>
元素的文件。
还有其他需要考虑的事情吗?
这样做的总体目标是能够为下游持续交付(http://go.cd/)阶段/步骤/作业提供有关应该使用哪个版本的上游依赖项的信息。
答案 0 :(得分:1)
一般情况下,在构建运行之前无法生成列表...问题是基于pom模型并未描述所有工件,导致某些插件可能产生补充工件(maven-assembly-plugin,maven) -shade-plugin,maven-jar-plugin通过test-jar等。)
您可以做的是在构建运行后获取生成的工件列表..(已安装)。您的问题inspired me to implement an EventSpy在构建结束时产生了这样的列表......看起来像这样:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.423 s
[INFO] Finished at: 2016-05-08T13:22:10+02:00
[INFO] Final Memory: 24M/310M
[INFO] ------------------------------------------------------------------------
[INFO] -- Maven Artifact Collector Summary --
[INFO] ------------------------------------------------------------------------
[INFO] test.maven.plugin.profiler:parse-pom:0.1.0-SNAPSHOT:jar
[INFO] test.maven.plugin.profiler:parse-pom:0.1.0-SNAPSHOT:pom
[INFO] test.maven.plugin.profiler:parse-pom:0.1.0-SNAPSHOT:jar:jar-with-dependencies
我能做的就是增强它并编写一个包含信息的文件(或多或少任何格式)......目前它只是一个PoC ...可能你可以提供更多信息或创建问题或PR和请求可能需要什么...可能这对其他人也很有意思......
此外,您的下游部分必须在存储库缓存中具有这些工件(在文件系统上或通过存储库管理器或docker数据容器)...