首页 > 解决方案 > 将工件部署到没有文件扩展名的 Maven 存储库

问题描述

我想使用 Gradle 将二进制工件(Linux 和 Mac OS X 可执行文件)部署到 Maven 存储库MavenPublication,以便它们存储在没有文件扩展名的存储库中(默认情况下 Linux 和 Mac 上的二进制文件/可执行文件就是这种情况)。

假设我有一个二进制foo版本1.0.0;在 Maven 术语中,它们分别是artifactIdversion。我能得到的最接近的方法是以名称部署它foo-1.0.0.- 请注意尾随点 ( .)。我宁愿希望它以名称存储foo-1.0.0(即,不带点)。我尝试不指定extension属性,也尝试指定一个空的extension=''.

publishing {
  publications {
    maven(MavenPublication) {
      artifact("some/parent/dir/foo") {
        extension ''
      }
    }
  }
}

有可能实现这一目标吗?作为一个相关问题,packaging应该在 POM 中为此类二进制文件指定什么。我已经检查了Maven 的工件处理程序类型列表,但这个列表没有提到二进制文件的打包,也没有提到没有扩展名的打包。我考虑过将其设置为binary,但我不确定这可能产生的后果。

标签: mavengradle

解决方案


Maven 存储库是错误的地方。

Maven 存储库按Maven 坐标( groupId, artifactId, version) 工作,而不是按文件名工作。文件名只是具有给定坐标集的工件的内部表示。


推荐阅读