发布调试&释放到神器

时间:2018-05-14 16:08:36

标签: android android-gradle artifactory

我正在使用Android Studio,并拼命试图发布我的调试和放大器。用单独的repoKeys释放aar到神器。最好是两个独立的任务。我已阅读此excellent guide,但我不想每次都更改我的gradle文件以进行部署。

我可以轻松创建两个pom文件,但还没有设法使artifactory插件足够动态来切换我的两个rep键。

我觉得这是我最接近的,但它并不存在:

String art_repo = ''

artifactory {
    contextUrl = 'https://www.myjfrogrepo.com'

    publish {
        repository {
            // The Artifactory repository key to publish to
            repoKey = "${art_repo}"

然后我创建了一个自定义任务来设置art_repo变量。

task debugPublishTojFrog {
    group "Publishing"
    art_repo = 'libs-snapshot-local'
    art_publicationName = 'debugAar'

    doLast {
        println "Successfully published ${art_repo} to jFrog"
    }
}
debugPublishTojFrog.finalizedBy artifactoryPublish

这会回应错误

Target repository cannot be empty

这让我认为repoKey是在构建时而不是在运行时设置的,因为我的自定义任务的更改似乎被忽略了。

任何建议都非常感谢。

1 个答案:

答案 0 :(得分:1)

在gradle中执行此操作的标准方法是测试您要发布的版本。

这正是您与倡导者链接的指南:

repoKey = libraryVersion.endsWith('SNAPSHOT') ? 'libs-snapshot-local' : 'libs-release-local'

此解决方案有什么问题?

编辑:如果问题在于必须更改gradle或gradle.properties文件,为什么不使用命令行中的属性。

repoKey = project.hasProperty('releaseVersion') ? 'libs-release-local' : 'libs-snapshot-local'

使用

构建快照
gradle build

使用

构建您的版本
gradle build -PreleaseVersion=1.0.0-GA

您还可以在其他几个位置使用此releaseVersion属性,例如您的软件元数据,您的出版信息......