主项目的域名配置在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")
混淆参考: