【问题标题】:Maven deploy:deploy-file removes extension from fileMaven deploy:deploy-file 从文件中删除扩展名
【发布时间】:2016-06-30 13:59:28
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: java maven deployment maven-deploy-plugin


    【解决方案1】:

    这是相当正常的行为,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-pluginattach-artifact 目标,以有效地将其定义为附加工件,然后Maven 将自动将其添加到其installdeploy 阶段。

    【讨论】:

      猜你喜欢
      • 2012-06-29
      • 2013-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-08
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多