为什么在 build.gradle 中打印发布和调试消息?
Why print release and debug message in build.gradle?
build.gradle
buildTypes {
release {
println('release')
}
debug {
println('debug')
}
}
当我执行 ./gradlew assembleDebug
时,打印消息
release
debug
为什么打印发布消息?没看懂。
我想在发布模式下执行一些代码,但在调试模式下也可以执行,我该怎么办?
buildTypes {
release {
println('release')
packagingOptions {
println('release packaging options')
exclude 'lib/armeabi/*.so'
}
ndk {
abiFilters 'armeabi-v7a'
}
shrinkResources true
minifyEnabled true
zipAlignEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField "String", "BUILDTIME", "\"${buildTime()}\""
buildConfigField "boolean", "RELEASE", "true"
}
debug {
println('debug')
ndk {
abiFilters 'armeabi', 'armeabi-v7a'
}
minifyEnabled false
buildConfigField "String", "BUILDTIME", "\"${buildTime()}\""
buildConfigField "boolean", "RELEASE", "false"
}
}
当我运行./gradlew assembleDebug
,打印消息
release
release packaging options
debug
我该怎么办?我不想在调试模式下执行发布语句。
打印消息是因为 println
语句是在 任务声明/初始化 阶段执行的。这并不意味着任务已执行。
要了解为什么即使您没有执行任何任务也会打印消息,您需要了解 Gradle 构建生命周期的构建阶段,即 初始化、配置和执行。
大多数脚本将在配置阶段运行。文件 settings.gradle
下的设置将在 初始化 阶段执行。 doFirst{}
和 doLast{}
中的语句在 执行 阶段将是 运行。
针对您的情况
buildTypes {
release {
println('release')
}
debug {
println('debug')
}
}
以上代码实际上是 运行 在项目 配置 阶段,消息将在控制台中看到。
How can I do ? I want not execute release statement in debug mode.
当你 运行
./gradlew assembleDebug
即使您看到发布消息,它也不会影响调试命令的调试输出。
查看官方文档:https://docs.gradle.org/current/userguide/build_lifecycle.html .
build.gradle
buildTypes {
release {
println('release')
}
debug {
println('debug')
}
}
当我执行 ./gradlew assembleDebug
时,打印消息
release
debug
为什么打印发布消息?没看懂。
我想在发布模式下执行一些代码,但在调试模式下也可以执行,我该怎么办?
buildTypes {
release {
println('release')
packagingOptions {
println('release packaging options')
exclude 'lib/armeabi/*.so'
}
ndk {
abiFilters 'armeabi-v7a'
}
shrinkResources true
minifyEnabled true
zipAlignEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField "String", "BUILDTIME", "\"${buildTime()}\""
buildConfigField "boolean", "RELEASE", "true"
}
debug {
println('debug')
ndk {
abiFilters 'armeabi', 'armeabi-v7a'
}
minifyEnabled false
buildConfigField "String", "BUILDTIME", "\"${buildTime()}\""
buildConfigField "boolean", "RELEASE", "false"
}
}
当我运行./gradlew assembleDebug
,打印消息
release
release packaging options
debug
我该怎么办?我不想在调试模式下执行发布语句。
打印消息是因为 println
语句是在 任务声明/初始化 阶段执行的。这并不意味着任务已执行。
要了解为什么即使您没有执行任何任务也会打印消息,您需要了解 Gradle 构建生命周期的构建阶段,即 初始化、配置和执行。
大多数脚本将在配置阶段运行。文件 settings.gradle
下的设置将在 初始化 阶段执行。 doFirst{}
和 doLast{}
中的语句在 执行 阶段将是 运行。
针对您的情况
buildTypes {
release {
println('release')
}
debug {
println('debug')
}
}
以上代码实际上是 运行 在项目 配置 阶段,消息将在控制台中看到。
How can I do ? I want not execute release statement in debug mode.
当你 运行
./gradlew assembleDebug
即使您看到发布消息,它也不会影响调试命令的调试输出。
查看官方文档:https://docs.gradle.org/current/userguide/build_lifecycle.html .