我现在只使用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 ""
}
}
答案 0 :(得分:0)
我已经解决了我的问题,我在defaultConfig中定义了一个buildConfigField:boolean TEST,所以在我的java代码中,我可以通过判断TEST选择请求url,我也可以通过判断TEST来选择本地存储库地址。 ,这些值可以在local.properties中以key = value!
的形式定义答案 1 :(得分:-1)
我在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'
}
您可以在构建变体中选择构建类型来构建apk文件。