Android Studio-向所有模块添加SDK版本和依赖项
在我目前工作的项目中,包含很多模块和依赖项。那么,有没有办法使所有这些版本和依赖项保持通用,并在所有模块中重用。我知道我们可以在root build.gradle文件中定义公共依赖项,但compileSdkVersions和exclude group之类的东西又如何呢。 我的依赖项有时包括排除组Android Studio-向所有模块添加SDK版本和依赖项,android,android-studio,gradle,Android,Android Studio,Gradle,在我目前工作的项目中,包含很多模块和依赖项。那么,有没有办法使所有这些版本和依赖项保持通用,并在所有模块中重用。我知道我们可以在root build.gradle文件中定义公共依赖项,但compileSdkVersions和exclude group之类的东西又如何呢。 我的依赖项有时包括排除组 androidTestCompile ('com.android.support.test:rules:1.0.1'){ exclude group: 'com.android.suppor
androidTestCompile ('com.android.support.test:rules:1.0.1'){
exclude group: 'com.android.support', module: 'support-annotations'
exclude group: 'com.android.support', module: 'appcompat'
exclude group: 'com.android.support', module: 'support-v4'
exclude module: 'recyclerview-v7'
}
我们如何处理这种情况?
一旦我们有了外接程序root build.gradle,是否有任何方法可以将它们全部添加到一个应用程序模块中,而不指定下面这样的单个模块
compile deps.cardview
compile deps.design
compile deps.supportv4
compile deps.animation
compile deps.pagination
compile deps.shimmerlayout
compile deps.enhanced_card
compile deps.swipeanim
compile deps.appcompact
对于诸如compileSdkVersion、buildtype和compileOptions之类的内容,我在根梯度文件中定义了如下内容:
ext.android_settings_for_module = {
compileSdkVersion COMPIlE_SDK_VERSION.toInteger()
buildToolsVersion BUILD_TOOLS_VERSION
defaultConfig {
minSdkVersion
targetSdkVersion
versionCode
versionName
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt')
}
}
compileOptions compile_options
lintOptions lint_options
testOptions test_options
}
ext.lint_options = {
//butterKnife
disable 'InvalidPackage'
}
ext.compile_options = {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
ext.common_libs = [
]
dependencies {
compile common_libs
}
然后,在模块文件中,您可以使用:
android android_settings_for_module
对于依赖项来说非常相似。在根目录文件中定义一个字段:
ext.android_settings_for_module = {
compileSdkVersion COMPIlE_SDK_VERSION.toInteger()
buildToolsVersion BUILD_TOOLS_VERSION
defaultConfig {
minSdkVersion
targetSdkVersion
versionCode
versionName
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt')
}
}
compileOptions compile_options
lintOptions lint_options
testOptions test_options
}
ext.lint_options = {
//butterKnife
disable 'InvalidPackage'
}
ext.compile_options = {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
ext.common_libs = [
]
dependencies {
compile common_libs
}
然后在模块级渐变文件中使用:
ext.android_settings_for_module = {
compileSdkVersion COMPIlE_SDK_VERSION.toInteger()
buildToolsVersion BUILD_TOOLS_VERSION
defaultConfig {
minSdkVersion
targetSdkVersion
versionCode
versionName
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt')
}
}
compileOptions compile_options
lintOptions lint_options
testOptions test_options
}
ext.lint_options = {
//butterKnife
disable 'InvalidPackage'
}
ext.compile_options = {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
ext.common_libs = [
]
dependencies {
compile common_libs
}
用于共享通用SDK版本和依赖项。您可以在库模块中定义共享渐变依赖项,如果应用程序模块将库作为依赖项,则无需两次指定所有内容。进一步说,您可以创建一个需要共享渐变依赖项的“公共”模块,并使应用程序和库模块都需要公共模块 看看:
// Top-level build file where you can add configuration options common to
all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
}
}
// Load dependencies
apply from: 'dependencies.gradle'
下面是依赖项。gradle:适用于应用程序中的所有模块和sdk版本
ext {
//Version
supportLibrary = '22.2.1'
//Support Libraries dependencies
supportDependencies = [
design : "com.android.support:design:${supportLibrary}",
recyclerView : "com.android.support:recyclerview-v7:${supportLibrary}",
cardView : "com.android.support:cardview-v7:${supportLibrary}",
appCompat : "com.android.support:appcompat-v7:${supportLibrary}",
supportAnnotation: "com.android.support:support-annotations:${supportLibrary}",
]
}
快乐编码 如何使用排除组添加依赖项。如何使用排除组添加依赖项。