Maven部署:deploy-file从文件中删除扩展

时间:2016-06-30 13:59:28

标签: java maven deployment maven-deploy-plugin

我正在尝试使用deploy-file目标分别将签名文件部署到Nexus staging存储库,但我注意到mvn deploy plugin删除了扩展名。我的文件类似于:azerty-0.1.jar.asc

但部署的文件是:azerty-0.1.asc

我尝试添加分类器:-Dclassifier=jar

部署的文件是:azerty-0.1-jar.asc

这似乎是一种奇怪的行为。

问题:有任何想法如何解决它?

1 个答案:

答案 0 :(得分:4)

这是一种正常行为,Maven使用文件扩展名作为人工制品packaging,来自maven-deploy-plugindeploy-filepackaging选项:

  

要部署的工件的类型。如果指定了POM文件,则从POM文件的<packaging>元素中检索。 如果未通过命令行或POM指定,则默认为文件扩展名

注意:粗体是我的。

此外,classifier选项确实会在版本和作为分类器提供的字符串之间添加-:即“maven convention

在您的情况下,您想要指定一个特殊的packaging,如果您确实希望远程文件具有jar.asc扩展名,则为jar.asc

因此以下工作:

mvn deploy:deploy-file -Dfile=azerty-0.1.jar.asc -Dpackaging=jar.asc -DrepositoryId=your_id -Durl=http://your_repository -DgroupId=your_groupId -DartifactId=azerty -Dversion=0.1

请注意-Dpackaging=jar.asc有效告诉Maven文件扩展名为jar.asc

作为一般说明,如果您将存储库用作构建存储,那么这仍然是合理的,否则在您的情况下,您将向Maven存储库推送一个工件,这将很难导入(或者说很奇怪)在一个项目中。

如果这实际上是您项目的另一个工件,您应该查看build-helper-maven-plugin的{​​{3}}目标,以有效地将其定义为附加工件,然后Maven会自动将其添加到其中installdeploy阶段。

相关问题