我的gradle任务看起来像这样
a =
0.0 -1.0 -2.0 -3.0
1.0 0.0 -1.0 -2.0
2.0 1.0 0.0 -1.0
3.0 2.0 1.0 0.0
任务始终是最新的。如果我把块放在配置阶段,即doLast之外,一切正常。但即使我执行了我不想要的gradlew任务,代码也会执行。我做错了什么?
答案 0 :(得分:2)
复制任务只有在有要复制的内容时才会执行。告诉它要复制什么是配置任务的一部分,因此需要在配置阶段而不是执行阶段完成。这些是非常重要的概念,您可以在Gradle用户指南或Gradle论坛中阅读这些概念。
作为执行任务的一部分,doFirst和doLast块在执行阶段执行。两者都来不及告诉任务要复制什么:doFirst在主要任务操作之前立即执行(在这种情况下是复制),但是(很快)在跳过和最新检查之后执行(基于任务的配置)。 doLast在主要任务操作之后执行,因此显然为时已晚。
答案 1 :(得分:0)
您应该按以下方式定义任务:
task xml_file_to_vs_build(type: Copy) {
println("copying strings.xml")
from 'src/main/res/values'
into '../vso_build'
include 'strings.xml'
}