gradle:跳过任务';:因为它没有源文件。并且不生成zip文件

gradle:跳过任务';:因为它没有源文件。并且不生成zip文件,gradle,build.gradle,Gradle,Build.gradle,我使用的是Gradle1.4版本。我有以下任务。”createWar工作正常,并生成所需的war文件。 但是“createServerPackage”不会生成我的“zip”文件。 下面是我的build.gradle文件。有人能帮我吗 task createWar(type: War, dependsOn: syncConfiguration){ } task createServerPackage(type: Zip) { description = "Creates the full

我使用的是Gradle1.4版本。我有以下任务。”createWar工作正常,并生成所需的war文件。 但是“createServerPackage”不会生成我的“zip”文件。 下面是我的build.gradle文件。有人能帮我吗

task createWar(type: War, dependsOn: syncConfiguration){
}
task createServerPackage(type: Zip) {
    description = "Creates the full server.zip package for distribution."
    dependsOn createWar

    String filesDirectory = 'upgradeFiles'

    from("${rootDir.absolutePath}/server/build/libs/adapter.war") {
        into(filesDirectory)
    }

    archiveName 'server.zip'
    destinationDir file(buildDir)
}
下面是编译gradle的片段

 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':createWar'
 [LIFECYCLE] [org.gradle.TaskExecutionLogger] :createWar UP-TO-DATE
 [LIFECYCLE] [org.gradle.TaskExecutionLogger] :createServerPackage
 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Starting to execute task ':createServerPackage'
 [INFO] [org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter] Skipping task ':createServerPackage' as it has no source files.
 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':createServerPackage'
 [LIFECYCLE] [org.gradle.TaskExecutionLogger] :createServerPackage UP-TO-DATE

不需要自己构建
war
路径。以下是应该如何做到这一点:

apply plugin: 'war'

task createWar(type: War)

task createServerPackage(type: Zip) {
    description = "Creates the full server.zip package for distribution."
    dependsOn createWar

    String filesDirectory = 'upgradeFiles'

    from(createWar.outputs) {
        into(filesDirectory)
    }

    archiveName 'server.zip'
    destinationDir file(buildDir)
}

可以找到演示。

太棒了!这很有效。我还需要一些澄清我将“task createWar(type:War,dependsOn:syncConfiguration){}”更改为“task createWar(type:War,dependsOn:syncConfiguration)”。这似乎做到了,我的包创建成功了。但是,你能帮我理解为什么吗?