将Gradle的Artifactory插件配置为发布到发布版或快照版仓库

15

Artifactory有两个预定义的本地库存储库:

  • libs-release-local:内部库的本地存储库
  • libs-snapshot-local:内部快照的本地存储库

Artifactory的Gradle脚本生成器可以生成一个脚本,仅使用一个存储库来发布构件,使用Gradle的artifactory插件。

这里是一个示例(仅显示相关部分):

artifactory {
    contextUrl = "${artifactory_contextUrl}"
    publish {
        repository {
            repoKey = 'libs-release-local'
            username = "${artifactory_user}"
            password = "${artifactory_password}"
            maven = true

        }
    }
    resolve {
        repository {
            repoKey = 'libs-release'
            username = "${artifactory_user}"
            password = "${artifactory_password}"
            maven = true

        }
    }
}

我想配置插件以使用libs-release-locallibs-snapshot-local仓库,具体取决于版本(即如果版本以-SNAPSHOT结尾,则发布到libs-snapshot-local)。

我发现可以使用Gradle集成的maven插件实现这一点(请参见uploadArchives任务中mavenDeployersnapshotRepository元素),但似乎在artifactory插件中没有此功能。

有没有办法实现这个期望的行为?

1个回答

25

既然这是一段华丽的代码,那就直接使用一个取决于版本的变量吧。

String repo = version.endsWith('SNAPSHOT') ? 'libs-snapshot-local' : 'libs-release-local'   
很高兴能为您服务。以下是您需要翻译的内容:

...

repository {
        repoKey = repo
        username = "${artifactory_user}"
        password = "${artifactory_password}"
        maven = true

    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接