我需要使用一些doFirst和doLast命令扩展gradle war任务,以便在生产状态下编译我的sencha前端。
我知道要扩展一个我需要添加task.doFirst {}的任务,但这不适用于war。我使用其他任务做了一些测试,比如
clean {
doFirst {
println "test"
}
}
这是有效的...但战争不是
war {
doFirst {
println "test"
}
}
我的主要想法是从src/main/webapp
列表中删除from
并执行sencha-cmd sencha app build -c --destination $war/ production
答案 0 :(得分:1)
您应该使用自己的输入/输出为sencha编译创建单独的任务,以便Gradle可以执行最新的检查(因此如果不必要,可以跳过它)。然后,您可以通过DAG
将任务连接到Gradle Task.dependsOn(...)task compileSencha(type:Exec) {
inputs.dir 'src/main/sencha'
outputs.dir "$buildDir/sencha"
commandLine 'sencha', 'app', 'build', file('src/main/sencha').absolutePath, file("$buildDir/sencha").absolutePath
}
war {
from "$buildDir/sencha"
dependsOn compileSencha
}