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

2023-12-07

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

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

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

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

还有什么要考虑的吗?

其总体目标是能够为下游持续交付(http://go.cd/)阶段/步骤/作业,其中包含应使用哪个版本的上游依赖项的信息。


一般来说,您无法在构建运行之前生成列表...问题是,基于 pom 模型,并未描述所有工件,因为某些插件可以生成补充工件(maven-assemble-plugin、maven-shade-插件、maven-jar-plugin 通过 test-jar 等)

您可以做的是在构建运行后获取生成的工件列表..(已安装)。你的问题启发我实现一个 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 数据容器)...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取 Maven 包命令将生成的 GAV 列表? 的相关文章

随机推荐