java - Maven 部署 :deploy-file removes extension from file

标签 java maven deployment maven-deploy-plugin

我正在尝试使用 deploy-file 目标将签名文件单独部署到 Nexus 暂存存储库,但我注意到 mvn deploy 插件删除了扩展。我的文件是这样的:azerty-0.1.jar.asc

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

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

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

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

问题:有什么解决办法吗?

最佳答案

这是相当正常的行为,Maven 正在使用文件扩展名作为人工制品 packaging , 来自 maven-deploy-plugin , deploy-file , packaging 选项:

Type of the artifact to be deployed. Retrieved from the <packaging> 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.

注意:粗体是我的。

此外,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 存储库推送一个 Artifact ,这将很难(或者更奇怪)导入在一个项目中。

如果这确实是您项目的附加 Artifact ,您应该查看 attach-artifact build-helper-maven-plugin 的目标, 为了有效地将其定义为附加 Artifact ,Maven 将自动将其添加到其 install 中和 deploy阶段。

关于java - Maven 部署 :deploy-file removes extension from file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38125395/

相关文章:

java - 线程中的异常 "main"java.util.NoSuchElementException : No line found at java. util.Scanne

java - Maven:每个标签上都出现不可解析的 POM 无法识别的标签错误

java - 使用 Maven 和 Eclipse 制作我的第一个 Web 项目时遇到问题

.net - 如何验证 .net 框架是否存在,如果不存在如何将其安装在用户计算机上

java - 在 Tomcat 5 上部署 .war 时出现问题(空指针异常)

java - 从 Android 中的 SQLite 数据库填充 ListView

Java反编译和JNI

java - 无法看到 Intellij Idea Palette

java - 如何配置 Maven 3 以使用抢占式授权?

node.js - Access-Control-Allow-Origin 问题,即使它应该有效