将工件从本地Gradle人工产物库部署到JCenter / MavenCentral

时间:2017-12-11 18:29:22

标签: java maven artifactory bintray jcenter

我目前使用JFrog artifactory gradle插件将我的java构建工件上传到本地工件存储库(Gradle默认存储库布局)。我想将它们中的一些部署到JCenter和/或Maven Central,使它们成为开源并且可供任何人访问。 为此,我在Artifactory上创建了一个分发(使用默认设置),我将其链接到我创建的Bintray帐户。但是,当我尝试从本地工件向此发行版分发工件时,我收到以下错误并且进程失败。

File cloud-sdk-java/com/cloud/sdk/device_directory/1.2.0/device_directory-1.2.0.pom resulted with the following errors
Coordinate Field package in rule 'Gradle-default' contains tokens that were not matched: ${module} for artifact cloud-sdk-java/com/cloud/sdk/device_directory/1.2.0/device_directory-1.2.0.pom, failing this rule.
Coordinate Field path in rule 'Gradle-default' contains tokens that were not matched: ${artifactPath} for artifact cloud-sdk-java/com/cloud/sdk/device_directory/1.2.0/device_directory-1.2.0.pom, failing this rule.
Coordinate Field version in rule 'Gradle-default' contains tokens that were not matched: ${baseRev} for artifact cloud-sdk-java/com/cloud/sdk/device_directory/1.2.0/device_directory-1.2.0.pom, failing this rule.

我尝试创建一些自定义“布局”来解决这个问题,但没有成功。

我做错了吗?

1 个答案:

答案 0 :(得分:4)

因为您要将库发布到JCenter和MavenCentral,所以必须与maven布局兼容。

您应该将构建部署到Artifactory中的maven2布局存储库:

gradle-default:[org] / [module] / baseRev / [module] -baseRev( - [classifier])。[ext]

maven-2-default:[orgPath] / [module] / baseRev / [module] -baseRev( - [classifier])。[ext]

HTH