我正在尝试使用部署文件目标单独部署签名文件到Nexus登台存储库,但我注意到mvn deploy插件删除了扩展名.我的文件是这样的:azerty-0.1.jar.asc
但部署的文件是:azerty-0.1.asc
我尝试添加分类器:-Dclassifier = jar
部署的文件是:azerty-0.1-jar.asc
这似乎是一种奇怪的行为.
问题:任何想法如何解决它?
解决方法:
这是一种正常的行为,Maven使用文件扩展名作为artefact打包,来自maven-deploy-plugin,deploy-file,packaging选项:
Type of the artifact to be deployed. Retrieved from the element of the POM file if a POM file specified. Defaults to the file extension if it is not specified via command line or POM.
注意:大胆是我的.
此外,分类器选项确实会在版本和作为分类器提供的字符串之间添加 – 即maven convention.
在您的情况下,您想要指定一个特殊的包装,如果您真的希望远程文件具有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的attach-artifact目标,为了有效地将其定义为附加工件,然后Maven会自动将其添加到其安装和部署阶段.
标签:java,maven,deployment,maven-deploy-plugin
来源: https://codeday.me/bug/20190623/1268475.html