我在build.gradle
中使用以下代码来复制飞艇的不同配置文件。但是,我发现我的任务copyReleaseConfigFileTask
/ copyDebugConfigFileTask
没有被调用。任何人都可以提示为什么我在下面定义的任务没有被执行?
task copyReleaseConfigFileTask(type: Copy) << {
println "-> using airship release config"
from 'app/src/main/assets/airshipconfig.properties.release'
into 'app/src/main/assets/airshipconfig.properties'
}
task copyDebugConfigFileTask(type: Copy) << {
println "-> using airship debug config"
from 'app/src/main/assets/airshipconfig.properties.debug'
into 'app/src/main/assets/airshipconfig.properties'
}
assembleDebug {
dependsOn copyDebugConfigFileTask
}
assembleRelease {
dependsOn copyReleaseConfigFileTask
}
答案 0 :(得分:0)
首先,您没有正确配置任务。您已尝试在执行阶段进行CopySpecification配置,但必须在配置阶段完成。为此,您必须从任务规范中删除<<
。它必须以这种方式重写:
task copyReleaseConfigFileTask(type: Copy) {
doLast {
println "-> using airship release config"
}
from 'app/src/main/assets/airshipconfig.properties.release'
into 'app/src/main/assets'
rename('airshipconfig.properies.release','airshipconfig.properties')
}
task copyDebugConfigFileTask(type: Copy) {
doLast {
println "-> using airship debug config"
}
from 'app/src/main/assets/airshipconfig.properties.debug'
into 'app/src/main/assets'
rename('airshipconfig.properties.debug','airshipconfig.properties')
}
注意,<<
与doLast
闭包相同。因此,这将正确配置您的复制任务,但该消息将仅在执行后显示。
另外,您提供了into
值作为文件名的路径,但它必须是目录的路径,而不是文件。要重命名它,请另外使用rename
闭包。在官方CopySpec API