Android Gradle 3.0 更新属性
2018-09-03 本文已影响27人
Mark_Liu
Dependency configurations
New configuration | Deprecated configuration | Behavior |
---|---|---|
implementation | compile | 编译时仅本模块可以使用 运行时其他模块也可以使用,提高编译速度 |
api | compile | 本模块和上游模块都可用 编译和运行时都可用 |
compileOnly | provided | 指向编译时的依赖库 库模块必须包含一个运行时条件 用于检测依赖项是否可用 |
runtimeOnly | apk | 只向构建输出添加依赖,供运行时使用 |
annotationProcessor | compile | 要添加对注释处理器库的依赖关系, 必须使用annotationProcessor配置 将其添加到注释处理器类路径中。 |
如果要添加特定的配置项,如下
configurations {
freeDebugRuntimeoly{}
}
dependencies {
freeDebugRuntimeOnly fileTree(dir: 'libs', include: ['*.jar'])
}
添加测试依赖库
dependencies {
// Adds a remote binary dependency only for local tests.
testImplementation 'junit:junit:4.12'
// Adds a remote binary dependency only for the instrumented test APK.
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
annotationProcessor的使用
dependencies {
// Adds libraries defining annotations to only the compile classpath.
compileOnly 'com.google.dagger:dagger:version-number'
// Adds the annotation processor dependency to the annotation processor classpath.
annotationProcessor 'com.google.dagger:dagger-compiler:version-number'
}
禁止annotation processor错误检测
android {
...
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath false
}
}
}
}
排除不需要的传递依赖项
dependencies {
implementation('some-library') {
exclude group: 'com.example.imgtools', module: 'native'
}
}
排除不需要的传递测试依赖项
android.testVariants.all { variant ->
variant.getCompileConfiguration().exclude group: 'com.jakewharton.threetenabp', module: 'threetenabp'
variant.getRuntimeConfiguration().exclude group: 'com.jakewharton.threetenabp', module: 'threetenabp'
}