Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 上传归档文件时如何选择不同的构建类型或产品风格?_Android_Maven - Fatal编程技术网

Android 上传归档文件时如何选择不同的构建类型或产品风格?

Android 上传归档文件时如何选择不同的构建类型或产品风格?,android,maven,Android,Maven,我现在只使用AndroidStudio,这是我的问题: 我有一个android库,但有许多不同的环境,例如调试、测试和发布,每个环境都与不同的请求url相关,我使用maven管理我的库,每个环境都与不同的maven url相关,我想使用productFlavors指定不同的请求url,然后构建不同的AAR并上传到maven,但是我不知道在上传归档文件时如何选择特定的构建类型或产品风格,如果有任何其他方法可以解决我的问题,请帮助我,谢谢 下面是build.gradle: buildTypes {

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

我有一个android库,但有许多不同的环境,例如调试、测试和发布,每个环境都与不同的请求url相关,我使用maven管理我的库,每个环境都与不同的maven url相关,我想使用productFlavors指定不同的请求url,然后构建不同的AAR并上传到maven,但是我不知道在上传归档文件时如何选择特定的构建类型或产品风格,如果有任何其他方法可以解决我的问题,请帮助我,谢谢

下面是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 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中选择build type来构建apk文件。

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

Android过去在Eclipse中使用ANT,现在在Android Studio中,Gradle被用作管理和构建工具。从未听说过mavenI通过应用插件“maven”在局域网中创建本地存储库,所以我想上传AAR,它在执行uploadArchives命令时与不同的请求url相关!有什么建议吗?谢谢!但是,当我上传到本地存储库时,我如何选择特定的风格呢?我的项目是一个库,我需要将我的项目共享给团队中的其他开发人员,因此我需要一个测试环境来测试我的代码,它有一个测试请求url,也需要一个发布环境来共享我的库,它有一个发布请求url。当然,我使用maven和nexus oss来管理我的项目!