gradle使用groovy语言(类似于java的动态语言)
顶层gradle文件
buildscript {
repositories {
maven {
credentials {
username "deployment"
password "deployment123"
}
url "http://10.4.41.99:8081/nexus/content/repositories/thirdparty/"
}
jcenter()
maven { url 'https://dl.google.com/dl/android/maven2/' }
maven{url 'http://maven.aliyun.com/nexus/content/groups/public/'}
maven { url 'https://maven.aliyun.com/repository/google' }
}
dependencies {
classpath 'com.android.tools.build:gradle:4.0.1'
}
}
allprojects {
repositories {
maven {
credentials {
username "deployment"
password "deployment123"
}
url "http://10.4.41.99:8081/nexus/content/repositories/thirdparty/"
}
jcenter()
maven {
url 'https://dl.google.com/dl/android/maven2/'
}
maven{url 'http://maven.aliyun.com/nexus/content/groups/public/'}
maven { url 'https://maven.aliyun.com/repository/google' }
}
configurations.all {
resolutionStrategy {
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'androidx.core') {
details.useVersion "1.0.0"
}
}
}
resolutionStrategy.force "androidx.appcompat:appcompat:1.0.1"
resolutionStrategy.force "androidx.recyclerview:recyclerview:1.0.0-rc01"
resolutionStrategy.force "androidx.licle:lifecycle-livedata:2.0.0"
resolutionStrategy.force "androidx.versionedparcelable:versionedparcelable:1.1.0"
resolutionStrategy.force "com.squareup.okhttp3:okhttp:3.12.1"
resolutionStrategy.force "com.squareup.okio:okio:2.6.0"
}
}
rootProject.buildDir = '../build'
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
task clean(type: Delete) {
delete rootProject.buildDir
}
ext {
dependencies = [ gson : 'com.google.code.gson:gson:2.8.5']
}
----------------子工程gradle文件apply plugin: 'com.android.application'
apply plugin: 'org.grobot.greendao'
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion
buildToolsVersion rootProject.ext.android.buildToolsVersion
defaultConfig {
applicationId "com.to8to.rabbitcircle"
minSdkVersion rootProject.ext.android.minSdkVersion
targetSdkVersion rootProject.ext.android.targetSdkVersion
versionCode rootProject.ext.android.versionCode
versionName rootProject.ext.android.versionName
javaCompileOptions {
annotationProcessorOptions {
arguments = [moduleName: project.getName()]
}
}
vectorDrawables.useSupportLibrary = true
resConfigs "hdpi","xxhdpi","en","cn"
ndk {
abiFilters "armeabi", "armeabi-v7a"
}
}
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
lintOptions {
checkReleaseBuilds false
abortOnError false
signingConfigs {
myConfig {
storeFile file("xxx")
storePassword "xxx"
keyAlias "xxx"
keyPassword "xxx"
}
}
dexOptions {
incremental true
javaMaxHeapSize "4g"
preDexLibraries = false
}
sourceSets {
main {
manifest.srcFile 'src/main/AndroidManifest.xml'
java.srcDirs = ['src/main/java']
resources.srcDirs = ['src/main/java']
renderscript.srcDirs = ['src/main/java']
res.srcDirs = ['src/main/res']
assets.srcDirs = ['src/main/assets']
}
}
}
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
buildTypes {
debug {
shrinkResources false
minifyEnabled false
multiDexEnabled true
signingConfig signingConfigs.myConfig
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
release {
shrinkResources false
minifyEnabled false
multiDexEnabled true
signingConfig signingConfigs.myConfig
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
to8to {
name=baiduapp,
dimension=null,
minSdkVersion=null,
targetSdkVersion=null,
renderscriptTargetApi=null,
renderscriptSupportModeEnabled=null,
renderscriptSupportModeBlasEnabled=null,
renderscriptNdkModeEnabled=null,
versionCode=null,
versionName=null,
applicationId=null,
testApplicationId=null,
testInstrumentationRunner=null,
testInstrumentationRunnerArguments={},
testHandleProfiling=null,
testFunctionalTest=null,
signingConfig=null,
resConfig=null,
mBuildConfigFields={},
mResVals={},
mProguardFiles=[],
mConsumerProguardFiles=[],
mManistPlaceholders={UMENG_CHANNEL_VALUE=土巴兔},
mWearAppUnbundled=null
}
}
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
}
dependencies {
def roomVersion = "2.2.0"
api fileTree(include: ['*.jar','*.aar'], dir: 'libs') api 'com.sun.mail:android:($roomVersion).aar'
api 'com.sun.mail:android:$roomVersion'
api ('com.sun.mail:android:$roomVersion', {
exclude module:'okhttp'
})
api 'com.sun.mail:android:$roomVersion'
debugApi ...
releaseApi ...
implementation ...
debugImplementation ...
releaseImplementation ...
compileOnly ...
debugCompileOnly ...
releaseCompileOnly ...
implementation(rootProject.ext.to8to.filepreview, {
exclude module: "okhttp"
exclude module: "okio"
})
annotationProcessor "androidx.licle:lifecycle-compiler:$archLifecycleVersion"
}