如何获取 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 数据容器)...
我正在寻找一个(受支持的)基于 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 数据容器)...