如何获取 maven 包命令将生成的 GAV 列表?

How can I get a list of GAVs a maven package command will produce?

我正在寻找一个(受支持的)基于 mvn 的命令,它将为我提供所有 GroupID:ArtifactID:Version (GAV) 的所有工件的列表 运行 mvn package命令会产生。

对于没有父 pom 的单模块 Maven 项目,这很简单:您可以查看 pom 内部。

对于具有父 pom 的单个模块 Maven 项目,您可以使用 help:effective-pom,它将显示一个包含 <version> 元素的 pom 文件。

对于多模块 Maven 项目(反应堆),您实际上可以这样做(没想到,刚刚通过尝试才知道)。这将允许为(多个)<project> 元素解析文件。

还有什么要考虑的吗?

这样做的总体目标是能够为下游持续交付 (http://go.cd/) stage/step/job 提供有关应该使用哪个版本的上游依赖项的信息。

一般来说,你不能在构建之前生成一个列表 运行...问题是基于 pom 模型,并不是所有的工件都被描述,因为一些插件可以产生补充工件(maven -assembly-plugin、maven-shade-plugin、maven-jar-plugin via 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 数据容器)...