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-local
或libs-snapshot-local
存储库(即如果版本以-SNAPSHOT
结尾,则发布到libs-snapshot-local
)。< / p>
我看到这可以使用Gradle的集成maven
插件(请参阅snapshotRepository
任务中mavenDeployer
的{{1}}元素),但uploadArchives
中的artifactory
元素似乎无法使用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
}