Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android库 – 使用Gradle将多个变体发布到本地Maven存储库大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 Android Gradle插件0.13.2,Android studio 0.8.11,Gradle 2.1和maven插件.

我想用一个命令(任务)将我的Android库的多个变种(风味构建类型)安装到本地Maven存储库.

目前Android Gradle插件0.13.2允许我将publishNonDefault标志设置为发布所有变体,但正如文档所述,它将使用与Maven Repository不兼容的分类器发布变体.

我现在的解决方法是使用defaultPublishConfig“myVariant”并为我的每个变体更改它.

apply plugin: 'com.android.library'
apply plugin: 'maven'

android {
    defaultPublishConfig "myVariant"
    .
    .
    .

}

task installArchives(type: Upload) {
    repositories.mavenInstaller {
        configuration = configurations.getByName(Dependency.DEFAULT_CONfigURATION)
        pom.groupId = "com.company"
        pom.artifactId = "mylibrary"
        pom.version = "1.0.0-myVariant"
    }
}

我想有一个任务可以正确地将所有变种发布到本地Maven存储库.

解决方法

为了解决这个问题,我必须为每个变体创建一个上载任务,并使它们相互依赖,并依赖于启动该过程的主任务.
apply plugin: 'com.android.library'
apply plugin: 'maven'

android {
    .
    .
    .

}

// Master task that will publish all variants
def DefaultTask masterTask = project.tasks.create("installArchives",DefaultTask)

android.libraryVariants.all { variant ->
    variant.outputs.each { output ->

        // Configuration defines which artifacts will be published,create one configuration for each variant output (artifact)
        def Configuration variantConfiguration = project.configurations.create("${variant.namE}Archives")
        project.artifacts.add(variantConfiguration.name,output.packageLibrary)

        // Create one Upload type task for each configuration
        def Upload variantTask = project.tasks.create("${variant.namE}Install",Upload)
        variantTask.configuration = variantConfiguration
        variantTask.repositories.mavenInstaller {
            pom.groupId = "com.yourcompany"
            pom.artifactId = "yourLibrary"
            pom.version = "1.0.0-${variant.namE}" //Give a different version for each variant
            pom.packaging = "aar"
        }

        // Make all tasks depend on each other and on master task
        masterTask.dependsOn variantTask
        masterTask = variantTask
    }
}

任务installArchives将所有变体发布到本地Maven存储库.

./gradlew installArchives

大佬总结

以上是大佬教程为你收集整理的Android库 – 使用Gradle将多个变体发布到本地Maven存储库全部内容,希望文章能够帮你解决Android库 – 使用Gradle将多个变体发布到本地Maven存储库所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。