android - 发布调试并发布到 artifactory

标签 android android-gradle-plugin artifactory

我正在使用 Android Studio 并拼命尝试让 gradle 将我的调试和发布 aar 发布到具有单独 repoKeys 的 Artifact 。最好作为两个单独的任务。我读过这个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 是在构建时设置的,而不是在运行时设置的,因为我的自定义任务的更改似乎被忽略了。

如果有任何建议,我们将不胜感激。

最佳答案

在 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 属性,例如您的软件元数据、您的发布信息...

关于android - 发布调试并发布到 artifactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50334699/

相关文章:

android - RxJava - 如何在 Android 中的 4 个点击事件中调用订阅者

java - 绘制网格偏移

android - gradle 旁边的这个蓝色圆圈是什么?以及如何禁用它?

android - buildConfigField、resValue 和 manifestPlaceholders 之间有什么区别?

java - Maven 如何与不同的存储库交互?

android - ListView 中的搜索过滤器未按预期工作

android - 使用导航组件动态设置工具栏标题

在自定义 View 布局中使用包含标记时 Android 数据绑定(bind)崩溃

powershell - Nuget 恢复命令行响应在源上找不到包 - Artifactory 云服务器

java - gradle publish 不包含 pom 中的依赖项