将工件部署到没有文件扩展名的Maven存储库

时间:2019-09-19 13:07:16

标签: maven gradle

我想使用Gradle的MavenPublication将二进制工件(Linux和Mac OS X可执行文件)部署到Maven存储库中,以便将它们存储在存储库中,而没有文件扩展名。对于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 ''
      }
    }
  }
}

有可能实现这一目标吗?作为一个相关问题,应该在POM中为此类二进制文件指定packaging。我已经检查过Maven's list of artifact handler types,但此列表没有提及二进制文件的打包,也没有提及没有扩展名的打包。我曾考虑过将其设置为binary,但不确定是否会导致后果。

2 个答案:

答案 0 :(得分:1)

Maven存储库是错误的放置位置。

Maven存储库通过Maven coordinatesgroupIdartifactIdversion)工作,而不是通过文件名工作。文件名只是具有给定坐标集的工件的内部表示。

答案 1 :(得分:0)

据我所知,我自己回答了这个问题,而Gradle的MavenPublication目前是不可能的。

相关问题