gpt4 book ai didi

maven - project.build.finalName 不适用于部署文件目标

转载 作者:行者123 更新时间:2023-12-04 03:12:53 50 4
gpt4 key购买 nike

我们可以在 mvn deploy:deploy-file 目标的命令行选项中使用 project.build.finalName 吗?

这是我的命令:

mvn deploy:deploy-file -DgroupId=abc -Dproject.build.finalName=test -DartifactId=test -Dversion=1.0 -Dpackaging=jar -Dfile="file_path" -Durl=url -DrepositoryId=id`

详情如下:首先,没有可用的 POM 文件。

我只是执行此命令以在 nexus 中上传 Artifact 。

现在的问题是,正在上传的 Artifact 的名称为:${artifactId}-${version}

而且我不想在最终名称中使用版本。我已经浏览了几篇文章,发现我们可以使用 project.build.finalName

但在这种情况下,它仍然在上传版本号。我该如何解决?

最佳答案

您需要删除 -Dproject.build.finalName 部分并添加 -DgeneratePom=true ,因为您已经通过以下方式指定了 Artifact 的完整路径-Dfile

在部署到 Maven 远程存储库(这正是您想要做的)时,您不能没有版本部分。部署到 Maven 存储库时, Artifact 的 GAV(groupIdartifactIdversiontype分类器)坐标将被翻译成:

${groupId}/${artifactId}/${version}/${artifactId}-${version}.jar

例如,对于这些 GAV-s:

groupId    : com.foo
artifactId : bar
version : 1.2.3-SNAPSHOT
type : jar
classifier : [null, javadoc, sources]

你会得到这样的路径:

com/foo/bar/1.2.3-SNAPSHOT/bar-1.2.3-SNAPSHOT.jar
com/foo/bar/1.2.3-SNAPSHOT/bar-1.2.3-SNAPSHOT-javadoc.jar
com/foo/bar/1.2.3-SNAPSHOT/bar-1.2.3-SNAPSHOT-sources.jar

-Dproject.build.finalName 适用于您希望 Artifact 具有不同名称的情况,以便(例如)您的构建过程可以使用它来简化,或方便。

如果您使用 deploy-file 进行部署并且没有 pom.xml 文件,您的命令行应该如下所示:

mvn deploy:deploy-file \
-DgroupId=com.foo \
-DartifactId=bar \
-Dversion=1.2.3-SNAPSHOT \
-Dpackaging=jar \
-Dfile="path\to\foo-1.2.3-SNAPSHOT.jar" \
-Durl=http://the-url-to-your-repository/ \
-DrepositoryId=the-repository-id-defined-in-your-settings.xml-that-has-your-credentials

关于maven - project.build.finalName 不适用于部署文件目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43585529/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com