gradle复制文件任务在构建中不起作用

时间:2018-08-17 10:52:35

标签: gradle

我是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个已执行

出什么问题了?

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