task simpleTask{
print("simpleTask is reach");
}
task copySomeFile(type: Copy){
print("copySomeFile is reach");
from baseProjectPath;
into toProjectPath;
appendXML();
}
def appendXML(){
//modify a.txt
}
//我只想运行" simpleTask"但是,当" gradle simpleTask",任务" copySomeFile"也会跑!我知道beacuse gradle初始化。
但如果写得像这样
task copySomeFile(type: Copy)<<{
}
&#34; copySomeFile&#34;不行。
似乎&#34;(类型:复制)&#34;无法使用&#34;&lt;&lt;&#34;或者&#34; doLast {}&#34;?
我只想要&#34; - gradle simpleTask&#34; &#34; - gradle copySomeFile&#34;可以独自运行。
答案 0 :(得分:3)
您必须阅读Gradle build lifecycle。
您需要注意两个阶段 - Configuration
和Execution
。所有任务总是在每次构建时配置,但只有部分任务才真正作为执行阶段执行。
您看到的是在配置阶段配置了copySomeFile
任务。它不会复制任何东西,但必须进行配置。任务关闭中的所有内容都是任务的配置,这就是您在输出中看到print("copySomeFile is reach");
的结果的原因。
<<
或doLast
用于在执行阶段运行某些内容,但如果将所有配置放入doLast
,则不会配置类型为Copy的任务部分或将<<
添加到任务定义中 - 这就是副本无法工作的原因。
答案 1 :(得分:1)
Thread