如何访问父 gradle 文件中的 gradle defaultConfig
How to access gradle defaultConfig in a parent gradle file
我想将在子项目 (app--> build.gradle) 中定义的 defaultConfig 访问到父项目 build.gradle 但似乎无法正常工作或者我做错了什么。实际上我需要访问我在 defaultConfig of app build.gralde 文件中定义的 buildvarient。
应用build.gradle:
android {
def buildTypeV // define here to update in loop
dependencies.metaClass.allCompile { dependency ->
buildTypes.each { buildType ->
// "${buildType.name}Compile" project(path: ":${dependency.name}", configuration: buildType.name)
buildTypeV=buildType.name
}
}
defaultConfig {
versionNameSuffix "${buildTypeV}"
}
从父 build.gradle 文件,我这样做是为了访问 versionNameSuffix:
gradle.buildFinished {
def buildV=${project.android.defaultConfig.versionNameSuffix};
println "buildV:::: $buildV"
}
访问 defaultConfig 的方式似乎是错误的,因为构建失败了。有人可以告诉我如何正确访问它吗?
我在控制台上看到的错误:
* What went wrong:
Could not find method $() for arguments [build_8kbbn8x9zcumz6eqfx8ryt61s$_run_closure2$_closure3@77596dd9] on root project 'df-backpack' of type org.gradle.api.Project.
在我的子项目中定义应用变体:
android.applicationVariants.all { variant ->
variant.outputs.all {
def flavor = variant.name
outputFileName = "../app-${flavor}-final.apk"
}
variant.assembleProvider.get().doLast getbuilder(variant.name.toLowerCase())
}
// 在父级中 build.gradle:
project('hpnurse') {
buildStr=it. android.applicationVariants.all;
//also tried like this
//it.variant.buildType.name;
}
当您调用 project.android
时,您指的是调用方项目,在您的例子中,指的是父项目。相反,您应该参考您的 Android 子项目。
从父项目中,您可以使用 project(name)
按名称访问特定的子项目。
gradle.buildFinished {
project('app') {
def buildV = it.android.defaultConfig.versionNameSuffix
println "buildV:::: $buildV"
}
}
我想将在子项目 (app--> build.gradle) 中定义的 defaultConfig 访问到父项目 build.gradle 但似乎无法正常工作或者我做错了什么。实际上我需要访问我在 defaultConfig of app build.gralde 文件中定义的 buildvarient。
应用build.gradle:
android {
def buildTypeV // define here to update in loop
dependencies.metaClass.allCompile { dependency ->
buildTypes.each { buildType ->
// "${buildType.name}Compile" project(path: ":${dependency.name}", configuration: buildType.name)
buildTypeV=buildType.name
}
}
defaultConfig {
versionNameSuffix "${buildTypeV}"
}
从父 build.gradle 文件,我这样做是为了访问 versionNameSuffix:
gradle.buildFinished {
def buildV=${project.android.defaultConfig.versionNameSuffix};
println "buildV:::: $buildV"
}
访问 defaultConfig 的方式似乎是错误的,因为构建失败了。有人可以告诉我如何正确访问它吗?
我在控制台上看到的错误:
* What went wrong:
Could not find method $() for arguments [build_8kbbn8x9zcumz6eqfx8ryt61s$_run_closure2$_closure3@77596dd9] on root project 'df-backpack' of type org.gradle.api.Project.
在我的子项目中定义应用变体:
android.applicationVariants.all { variant ->
variant.outputs.all {
def flavor = variant.name
outputFileName = "../app-${flavor}-final.apk"
}
variant.assembleProvider.get().doLast getbuilder(variant.name.toLowerCase())
}
// 在父级中 build.gradle:
project('hpnurse') {
buildStr=it. android.applicationVariants.all;
//also tried like this
//it.variant.buildType.name;
}
当您调用 project.android
时,您指的是调用方项目,在您的例子中,指的是父项目。相反,您应该参考您的 Android 子项目。
从父项目中,您可以使用 project(name)
按名称访问特定的子项目。
gradle.buildFinished {
project('app') {
def buildV = it.android.defaultConfig.versionNameSuffix
println "buildV:::: $buildV"
}
}