主项目的域名配置在gradle.properties文件中添加
ServerApi=\"https\://xxx.xxx.com:8888/"
项目中的build.gridle配置
buildscript {
repositories {
maven{url "http://11.11.11.11:8080/repository/maven-releases/"}
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0'
}
}
allprojects {
repositories {
maven{url "http://11.11.11.11:8080/repository/maven-releases/"}
google()
jcenter()
}
}
插件中的build.gridle配置 apply plugin: 'com.android.library' apply plugin: 'maven-publish' def versionDefualt = '1.0'
android {
...
...
android.libraryVariants.all { variant ->
variant.outputs.all {
outputFileName = "xxx_" + defaultConfig.versionName +
".aar"
}
}
publishing {
publications {
publications(MavenPublication) {
groupId = "service"
artifactId = "xxx"
version = versionDefualt
artifact "build/outputs/aar/xxx_" + version + ".aar"
}
}
repositories {
maven {
url = "http://11.11.11.11:8080/repository/maven-releases/"
credentials {
username = "xxx"
password = "xxx"
}
}
}
}
主工程引用方式
build.gradle配置
apply plugin: 'com.android.application' android {
...
...
productFlavors {
publicStream1 {
buildConfigField "String", "ENVIRONMENT", '"publicStream1"'
manifestPlaceholders = [ENVIRONMENT: "publicStream1"]
}
privateStream {
buildConfigField "String", "ENVIRONMENT", '"privateStream"'
manifestPlaceholders = [ENVIRONMENT: "privateStream"]
}
}
sourceSets {
main {
jniLibs.srcDirs = ['libs']
res.srcDirs = ['src/main/res']
}
}
buildTypes {
debug {
//ServerApi为动态配置的服务器地址
buildConfigField "String", "ServerApi", ServerApi.toString()
minifyEnabled false
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
release {
buildConfigField "String", "ServerApi", ServerApi.toString()
lintOptions {
checkReleaseBuilds false
abortOnError false
}
signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
android.applicationVariants.all { variant -> variant.outputs.all { outputFileName = "app_" + "${defaultConfig.versionName}_" + getCurrentFlavor() + "_${releaseTime()}.apk" } }
def releaseTime() {
return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
}
// 取出当前选择的渠道名
def getCurrentFlavor() {
println "************platform*************"
Gradle gradle = getGradle()
def parameter = gradle.getStartParameter()
println "StartParameter = $parameter"
List<String> names = parameter.getTaskNames()
println "TaskNames = $names"
if (names.size() > 0) {
String taskStr = names.get(0)
println "TestName =" + taskStr
if (taskStr.size() >= 13) {
return taskStr.substring(13, taskStr.size())
}
return taskStr
}
return ""
}
dependencies {
implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')
// implementation 'service:xxx:1.0@aar'
implementation project(path: ':xxx')
}
settings.gradle配置
include ':xxx'
project(':xxx').projectDir= new File("../xxx")
混淆参考:
本文详细介绍如何使用Gradle进行项目的配置管理,包括域名设置、依赖管理、插件应用及构建脚本编写等内容。同时,还提供了关于不同环境配置切换的具体实现方案。
1049

被折叠的 条评论
为什么被折叠?



