在 maven-install-plugin 上保留 maven 工件名称(默认安装)

Posted

技术标签:

【中文标题】在 maven-install-plugin 上保留 maven 工件名称(默认安装)【英文标题】:Keep maven artifact name on maven-install-plugin (default-install) 【发布时间】:2017-03-31 23:57:48 【问题描述】:

我尝试在工件名称中包含 git commit 哈希以区分 CI 场景中的快照版本。 git 哈希已成功包含在我的项目的 target/ 文件夹中,但在最后一个 maven 步骤中,它将工件复制到我的 HOME/.m2/repositories 文件夹中并将名称更改为 ARTIFACTID-VERSION-mta.jar。

如何保留包含提交哈希的目标/文件夹中的文件名?

我查看了 maven-install-plugin,但找不到“finalName”属性或类似的东西。

[INFO] --- maven-install-plugin:2.5.2:install (default-install) @ projectname ---
[INFO] Installing PROJECTDIR/pom.xml to ~/.m2/repository/GroupIdDir/projectname/1.0.1/projectname-1.0.1.pom
[INFO] Installing PROJECTDIR/target/projectname-1.0.1-d054c42-mta.jar to ~/.m2/repository/GroupIdDir/projectname/1.0.1/projectname-1.0.1-mta.jar

我希望最后一行是

[INFO] Installing PROJECTDIR/target/projectname-1.0.1-d054c42-mta.jar to ~/.m2/repository/GroupIdDir/projectname/1.0.1/projectname-1.0.1-d054c42-mta.jar

Controlling maven final name of jar artifact 没有解决问题,因为它修改了输出文件夹。

【问题讨论】:

你不能那样做。本地存储库中的名称遵循artifacId-version(-classifier).type 约定,您无法更改它。见***.com/questions/17024803/version-in-jar-name 我可以将提交哈希设置为分类器吗? 可以 但这确实意味着每次有新的提交时它的 Maven 坐标都会改变,所以每个依赖它的项目都需要改变 <dependency> 声明 对于每个提交。请参阅***.com/questions/8354201/…。听起来您正在尝试从头开始重建 Maven 的 SNAPSHOT 机制。为什么不对你的项目 1.0.1-SNAPSHOT 进行版本控制? 我想知道一旦工件被部署到其他地方,哪个提交导致了工件的快照版本或发布版本。如果有错误,应该很容易从已部署的工件中获取相关提交。 那么不要在文件名中添加这个信息。对于这个用例,这通常被添加到另一个文件的清单中。对于 Git,请参阅 github.com/ktoso/maven-git-commit-id-plugin 或 ***.com/questions/31510244/… 【参考方案1】:

这可能是因为存储库布局。

存储库布局定义

这是 Maven 2.x 和 其相关的 Ant 任务。

对于主要工件: /$groupId[0]/../$groupId[n]/$artifactId/$version/$artifactId-$version.$extension

对于次要工件: /$groupId[0]/../$groupId[n]/$artifactId/$version/$artifactId-$version-$classifier.$extension

见https://cwiki.apache.org/confluence/display/MAVENOLD/Repository+Layout+-+Final

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效

以上是关于在 maven-install-plugin 上保留 maven 工件名称(默认安装)的主要内容,如果未能解决你的问题,请参考以下文章

mvn install local jar 出错:无法执行目标 org.apache.maven.plugins:maven-install-plugin...(是一个目录)-> [帮助 1]

Plugin org.apache.maven.plugins:maven-install-plugin:2.4 or one of its dependencies could not

Plugin org.apache.maven.plugins:maven-install-plugin:2.4 or one of its dependencies could not

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4:install (default-cl

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4:install (default-cl

Cookie正在删除