我们可以在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
但在这种情况下,它仍在上传版本号。我该如何解决这个问题?
答案 0 :(得分:1)
您需要删除-Dproject.build.finalName
部分并添加-DgeneratePom=true
,因为您已经通过-Dfile
指定了工件的完整路径。
部署到Maven远程存储库时, 没有 版本部分(这是您正在尝试做的事情)。部署到Maven存储库时,您的工件的GAV(groupId
,artifactId
,version
,type
和classifier
)坐标将被转换为:
${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