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

Pao*_*oni 12 artifactory gradle

Artifactory为本地库提供了两个预定义的存储库:

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

Artifactory的Gradle脚本生成器可以使用artifactoryGradle插件生成一个脚本,该脚本仅使用一个存储库进行工件发布.

这是一个例子(只有相关部分):

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

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想配置为使用该插件libs-release-locallibs-snapshot-local基于版本库(即,如果版本结尾-SNAPSHOT,然后发布到libs-snapshot-local).

我看到这是可能使用摇篮的集成maven插件(见snapshotRepository的元素mavenDeployeruploadArchives任务),但是这个功能在似乎不可用artifactory插件.

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

JBa*_*uch 21

因为它是一个groovy 代码,所以继续使用变量,这取决于版本.

String repo = version.endsWith('SNAPSHOT') ? 'libs-snapshot-local' : 'libs-release-local'   
Run Code Online (Sandbox Code Playgroud)

...

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

    }
Run Code Online (Sandbox Code Playgroud)