配置Gradle的Artifactory插件以发布到发布或快照存储库

时间:2014-02-13 15:13:26

标签: gradle artifactory

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)。< / p>

我看到这可以使用Gradle的集成maven插件(请参阅snapshotRepository任务中mavenDeployer的{​​{1}}元素),但uploadArchives中的artifactory元素似乎无法使用1}}插件。

有没有办法实现这种理想的行为?

1 个答案:

答案 0 :(得分:21)

因为它是一个常规的代码,所以继续使用变量,这取决于版本。

String repo = version.endsWith('SNAPSHOT') ? 'libs-snapshot-local' : 'libs-release-local'   

...

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

    }