我想将一些常见的样板gradle脚本代码放入共享.gradle文件中.然后,我可以使用apply from:语句重用它.
问题是是否可以将参数传递给应用脚本?例如,我想重复使用以下锅炉板:
apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
apply plugin: 'org.robolectric'
configurations {
apt
}
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode rootProject.ext.versionCode
versionName rootProject.ext.versionName
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题出在这里:apply plugin: 'com.android.application'.我想将这个代码重用于应用程序项目或android库项目.所以我需要一些参数来决定应用哪个插件:
// assuming <isApplicationProject> - is a script parameter
if (isApplicationProject) {
apply plugin: 'com.android.application'
} else {
apply plugin: 'com.android.library'
}
Run Code Online (Sandbox Code Playgroud)
当然,我可以在这种特殊情况下定义一些项目级属性,但我想知道是否可以在脚本调用时传递参数
ext.isUsingApp=true; apply from: 'xxx'如果这是唯一的区别,我建议您执行以下操作:
myinclude.gradle:
apply plugin: 'com.neenbedankt.android-apt'
apply plugin: 'org.robolectric'
configurations {
apt
}
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode rootProject.ext.versionCode
versionName rootProject.ext.versionName
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
Run Code Online (Sandbox Code Playgroud)然后在你的 build.gradle 应用程序中:
apply plugin: 'com.android.application'
apply from: '../includes/myinclude.gradle'
Run Code Online (Sandbox Code Playgroud)
然后在你的库 build.gradle 中:
apply plugin: 'com.android.library'
apply from: '../includes/myinclude.gradle'
Run Code Online (Sandbox Code Playgroud)
对于简单的布尔值,无需创建参数。
| 归档时间: |
|
| 查看次数: |
2033 次 |
| 最近记录: |