Gradle 将war任务连接到货物部署任务

Gradle 将war任务连接到货物部署任务,gradle,Gradle,我创建了一个gradle脚本,以便使用cargo插件在容器上部署可部署的: 尽管如此,我还是创建了几个任务,以便根据其范围创建自定义war文件: task createQAWar(type: War, dependsOn: classes) { archiveName "webapi-demo-${versioning.info.display}.war" destinationDir = file("$buildDir/dist") webInf { ..

我创建了一个gradle脚本,以便使用cargo插件在容器上部署可部署的:

尽管如此,我还是创建了几个任务,以便根据其范围创建自定义war文件:

task createQAWar(type: War, dependsOn: classes) {
    archiveName "webapi-demo-${versioning.info.display}.war"
    destinationDir = file("$buildDir/dist")
    webInf {
       ...
    }
}

task createDevelopmentWar(type: War, dependsOn: classes) {
    archiveName "webapi-dev-${versioning.info.display}.war"
    destinationDir = file("$buildDir/dist")
    webInf {
       ...
    }
}

task createTestingWar(type: War, dependsOn: classes) {
    archiveName "webapi-test-${versioning.info.display}.war"
    destinationDir = file("$buildDir/dist")
    webInf {
       ...
    }
}

task createProductionWar(type: War, dependsOn: classes) {
    archiveName "webapi-prod-${versioning.info.display}.war"
    destinationDir = file("$buildDir/dist")
    webInf {
       ...
    }
}
我想链接deployDev任务选择createDevelopmentWar上生成的war工件

我已尝试将dependsOn属性设置为createDevelopmentWar:

如何设置cargo从以前的war类型任务createDevelopmentWar执行信息中拾取工件?

dependsOn=createDevelopmentWar将调用setDependsOncreateDevelopmentWar,该调用预期任务不可用

dependsOn createDevelopmentWar将导致调用dependsOncreateDevelopmentWar,该调用需要varargs参数,因此应该将任务添加到依赖项中


如果你真的想用这个依赖项替换所有的依赖项,你必须像dependsOn=[createDevelopmentWar]那样做。

谢谢@Vampire。我现在收到另一条消息。它从一个不正确的文件夹中提取工件。我编辑了这篇文章。有什么想法吗?按照你正在使用的插件的文档进行操作。默认情况下,它会从应用的war或ear任务中自动检测可部署项,但在您的情况下,这不适用,因此它找不到它试图部署的文件。定义一个可部署的自定义war,你会没事的。如果插件开发正确,并且在可部署闭包中使用filecreateDevelopmentWar作为文件,您甚至可以不显式指定dependsOn,但无论如何都应该隐式指定。我能够理解您的意思。尽管如此,我还是不太明白如何更改脚本,因为我是使用gradle的新手。你能提供一些帮助代码来说明如何获得它吗?我的意思是如何在类似deployDev的任务中创建一个可部署的。否则,我如何避免使用dependsOn并创建一种隐式的方法来实现这一点呢?正如我所说的,看看您使用的插件的文档。我帮不了什么忙,因为我不使用那个插件。我只是快速浏览了一下文档和代码,以尽可能好地回答您的问题,而不必深陷其中。
task createQAWar(type: War, dependsOn: classes) {
    archiveName "webapi-demo-${versioning.info.display}.war"
    destinationDir = file("$buildDir/dist")
    webInf {
       ...
    }
}

task createDevelopmentWar(type: War, dependsOn: classes) {
    archiveName "webapi-dev-${versioning.info.display}.war"
    destinationDir = file("$buildDir/dist")
    webInf {
       ...
    }
}

task createTestingWar(type: War, dependsOn: classes) {
    archiveName "webapi-test-${versioning.info.display}.war"
    destinationDir = file("$buildDir/dist")
    webInf {
       ...
    }
}

task createProductionWar(type: War, dependsOn: classes) {
    archiveName "webapi-prod-${versioning.info.display}.war"
    destinationDir = file("$buildDir/dist")
    webInf {
       ...
    }
}
remoteContainers.each { config ->
    task "deployDev${config.name.capitalize()}"(type: com.bmuschko.gradle.cargo.tasks.remote.CargoDeployRemote) {
        description = "Deploys WAR to remote Web Application Server: '${config.name}'."
        containerId = config.container
        hostname = config.hostname
        port = config.port
        username = config.username
        password = config.password
        dependsOn = createDevelopmentWar  <<<<<<<<<<<<<<<<<
    }
}
task createDevelopmentWar(type: War, dependsOn: classes) {
        archiveName "webapi-dev-${versioning.info.display}.war"
        destinationDir = file("$buildDir/dist")
        webInf {
           ...
        }
    }