project.build.finalName不支持部署文件目标

时间:2017-04-24 10:20:29

标签: maven

我们可以在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中的工件。

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

我不想在最终名称中使用版本。我让alrady经历了几个帖子,发现我们可以使用project.build.finalName

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

1 个答案:

答案 0 :(得分:1)

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

部署到Maven远程存储库时, 没有 版本部分(这是您正在尝试做的事情)。部署到Maven存储库时,您的工件的GAV(groupIdartifactIdversiontypeclassifier)坐标将被转换为:

${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适用于您希望工件具有不同名称的情况,以便(例如),您的构建过程可以使用它来简化或方便。

如果您使用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