我有一个多项目的Gradle构建过程。其中一个“projects”在build.gradle中使用project块定义:
project(':EAR' {
//...
ear (
//...
)
}
我有一个终端命令,我想在编译项目后执行。我正在尝试使用由“dependsOn”触发的任务来完成此任务:
task copyEarToWildfly(type:Exec,dependsOn: project('EAR').tasks.getByPath('assemble')) {
group 'Build'
description 'Copy the EAR.ear file to the docker wildfly directory'
workingDir "$rootDir/docker/wildfly"
commandLine 'docker', 'cp', 'EAR.ear', 'wildfly:opt/jboss/wildfly/standalone/deployments'
}
如果我通过“./gradlew copyEARToWildFly”直接从终端运行任务copyEarToWildFly,它会工作--将.ear复制到目标位置。但是,如果我运行“./gradlew build”,则不会触发copyEARToWildFly任务。
我尝试将dependsOn任务名称从“assemble”改为“build”,再改为“ear”,但这些都不起作用。
我用的是Gradle 7.3.3。任何关于如何让我的copyEARToWildfly执行的建议,当项目构建将是受欢迎的!我是个菜鸟。
1条答案
按热度按时间zbdgwd5y1#
你已经试过了吗?
?最后,“构建”任务必须取决于您的copyEarToWildfly,而不是反向。您还可以引入一个新的任务,以便不仅构建,而且“部署”,如
然后,您只需运行依赖于'copyEarToWildfly'的部署任务,该任务依赖于构建耳朵的任务。