我是gradle的新手,我想将gradlew build
生成的jar文件复制到另一个目录。
task myCopyTask(type: Copy) {
from "build/libs/gs.jar"
into "D:/bin/gs"
}
我将上述任务添加到属于gs模块的build.gradle中,该模块将生成gs.jar。
问题是命令gradlew build
将不执行复制,并且确实执行了此任务(我在myCopyTask中添加了println)。但是,命令gradlew myCopyTask
有效。
首先,我认为复制任务可能运行得太早,所以我将其更改为
task myCopyTask(type: Copy) {
doLast {
from "build/libs/gs.jar"
into "D:/bin/gs"
}
}
即使gradlew myCopyTask
也不起作用。命令gradlew myCopyTask
仅可以使用第一个版本,终端将显示: 1个可执行任务:1个已执行
出什么问题了?
答案 0 :(得分:1)
您尚未将任务连接到Gradle的DAG中,因此当前仅在您执行gradlew myCopyTask
时执行该任务
您可能会做类似
的操作apply plugin: 'base' // adds build and assemble lifecycle tasks
task myJarTask(type:Jar) {...}
task myCopyTask(type: Copy) {
dependsOn myJarTask
...
}
assemble.dependsOn myCopyTask
请参见https://docs.gradle.org/current/userguide/tutorial_using_tasks.html#sec:task_dependencies