【发布时间】:2016-05-08 01:02:14
【问题描述】:
我正在寻找一个(受支持的)基于 mvn 的命令,它会为我提供运行 mvn package 命令会产生的所有工件的所有 GroupID:ArtifactID:Version (GAV) 的列表。
对于没有父 pom 的单模块 Maven 项目,这很简单:您可以查看 pom 内部。
对于带有父 pom 的单模块 Maven 项目,您可以使用 help:effective-pom,它将显示一个带有 <version> 元素的 pom 文件。
对于多模块 Maven 项目(reactor),您实际上可以这样做(没想到,刚刚通过尝试学习)。这将允许为(多个)<project> 元素解析文件。
还有什么要考虑的吗?
这样做的总体目标是能够为下游持续交付 (http://go.cd/) 阶段/步骤/作业提供有关应使用其上游依赖项的哪个版本的信息。
【问题讨论】:
-
如果计算限定符(如 *-source、*-tests、*-javadocs),单个 maven 模块实际上可以产生多个工件。并且通过对 maven jar 插件的丑陋调用,我确信我可以操纵它甚至产生多个 GAV。我认为唯一“安全”的方法是运行“mvn install”,看看最终会被放入本地仓库
-
使用 maven-jar-plugin 我非常怀疑您为不同的 groupId:artifactId:version 创建 jar 导致 maven-jar-plugin 附加/替换由定义的主项目的工件它是 pom,它只能有一个 g:a:v ...