在 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