【问题标题】:How to select different buildTypes or productFlavors when uploadArchives?uploadArchives 时如何选择不同的 buildTypes 或 productFlavors?
【发布时间】:2016-05-31 04:45:26
【问题描述】:

我现在只使用 AndroidStudio,这是我的问题:

我有一个 android 库,但有许多不同的环境,例如调试、测试和发布,每个环境都关联一个不同的请求 url,我使用 maven 管理我的库,每个环境都关联一个不同的 maven url ,我想用productFlavors指定不同的请求url,然后构建不同的aars并上传到maven,但是我不知道在uploadArchives时如何选择具体的buildType或productFlavors,如果有其他方法可以解决我的问题,请帮助我,谢谢!

这里是 build.gradle:

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
productFlavors {
    flavors_release {
        resValue("string", "url", "http://....")
    }
    flavors_dev {
        resValue("string", "url", "http://...")
    }
}
uploadArchives {
repositories.mavenDeployer {
    repository(url: 'http://127.0.0.1:8081/nexus/content/repositories/test/') {
        authentication(userName: "admin",
                password: "admin123")
    }
    pom.project {
        name 'mylibrary'
        packaging 'aar'
        description ''
        url 'http://127.0.0.1:8081/nexus/content/repositories/test/'
        groupId ""
        artifactId ''
        version ""
    }
}

【问题讨论】:

  • Android 过去在 Eclipse 中使用 ANT,现在在 Android Studio 中使用 Gradle 作为管理和构建工具。从未听说过有关 Maven 的任何消息
  • 我通过应用插件'maven'在局域网中创建了一个本地存储库,所以我想在执行uploadArchives命令时上传与不同请求url相关的aars!有什么建议吗?

标签: android maven


【解决方案1】:

我已经解决了我的问题,我在defaultConfig中定义了一个buildConfigField:boolean TEST,所以在我的java代码中,我可以通过判断TEST选择请求url,我也可以通过判断TEST选择本地存储库地址。原因,这些值可以在local.properties中定义为key=value的形式!

【讨论】:

    【解决方案2】:

    我在 android studio 中使用产品风格尝试了不同类型的构建。 参考代码:

    buildscript {
        repositories {
            maven { url 'https://maven.fabric.io/public' }
        }
    
        dependencies {
            classpath 'io.fabric.tools:gradle:1.+'
        }
    }
    apply plugin: 'com.android.application'
    apply plugin: 'io.fabric'
    
    repositories {
        mavenCentral()
        maven { url 'https://maven.fabric.io/public' }
        maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
        maven { url "http://jzaccone.github.io/SlidingMenu-aar" }
    }
    
    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.2"
    
        defaultConfig {
            applicationId "com.test.testandroid"  //your app id
            minSdkVersion 16
            targetSdkVersion 23
            versionCode 1
            versionName "1.0"
        }
    
        signingConfigs {
            debug {
                storeFile file("/keystore/debug.keystore")
                keyAlias 'androiddebugkey'
                keyPassword 'android'
                storePassword 'android'
            }
    
            googlePlayRelease {
                storeFile file("/keystore/key.jks")
                keyAlias 'android'
                keyPassword 'android'
                storePassword 'android'
            }
        }
        buildTypes {
            release {
                minifyEnabled false
                debuggable false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    
            }
    
            debug {
                minifyEnabled false
                debuggable true
    
            }
    
    
        }
    
        productFlavors {
            stagingBuild {
                buildConfigField "boolean", "IS_DEMO", "false"
            }
    
            demoBuild {
                buildConfigField "boolean", "IS_DEMO", "true"
                versionCode 1
                versionName "1.0"
            }
        }
    }
    
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:23.2.1'
        compile 'com.android.support:design:23.2.1'
    
    }
    

    您可以在Build variant中选择构建类型来构建apk文件。

    【讨论】:

    • 谢谢!但是当我上传到本地存储库时如何选择特定的风格?我的项目是一个库,我需要将我的项目分享给我团队中的其他开发人员,所以我需要一个测试环境来测试我的代码,它有一个测试请求 url,还需要一个发布环境来共享我的库,它有一个发布请求 url。当然,我使用 maven 和 nexus oss 来管理我的项目!
    猜你喜欢
    • 2021-11-05
    • 1970-01-01
    • 2021-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 2021-10-08
    相关资源
    最近更新 更多