有没有办法让多模块 Maven 项目列出它部署的工件的 group/artifact ID?

Is there a way to have a multi-module maven project list the group/artifact IDs of the artifacts it deploys?

我正在整理通用脚本以支持许多不同 Maven 项目(其中许多是多模块项目)的 CI 管道。

我想编写一个 Bash 脚本来编目由任何给定构建部署的组 ID、工件 ID 和工件 (JAR/WAR)。但是,我很难弄清楚如何以一种万无一失的方式获取这些信息。

maven 是否支持检索此信息?

您可以利用maven-deploy-plugin的日志。

要获取 artifactId,请使用此行:

[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ artifact-id ---

其他内容:

[INFO] Uploaded: path-to-artifactory/group-id-path/artifact-name/path-to-jar-artifact/artifact.jar

path-to-artifactory 在所有情况下保持不变。因为你也知道artifact-name,所以你可以得到group-id-path。然后用 . 替换 /\(无论文件分隔符是什么)。例如,com/company/something/group1 将为您提供 groupId 作为 com.company.something.group1.

并且您还将知道上传文件的名称及其相对于工件位置的位置 path-to-jar-artifact