我想使用Gradle的MavenPublication
将二进制工件(Linux和Mac OS X可执行文件)部署到Maven存储库中,以便将它们存储在存储库中,而没有文件扩展名。对于Linux和Mac上的二进制文件/可执行文件,默认情况下为这种情况。
假设我在版本foo
中有一个二进制文件1.0.0
;用Maven术语分别是artifactId
和version
。我能得到的最接近的名称是以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
,但不确定是否会导致后果。
答案 0 :(得分:1)
Maven存储库是错误的放置位置。
Maven存储库通过Maven coordinates(groupId
,artifactId
,version
)工作,而不是通过文件名工作。文件名只是具有给定坐标集的工件的内部表示。
答案 1 :(得分:0)
据我所知,我自己回答了这个问题,而Gradle的MavenPublication
目前是不可能的。