Gradle任务依赖执行问题
我面临一个与gradle任务依赖性相关的问题。我的一个gradle任务正在成功调用另一个任务,但它没有执行第二个任务所依赖的依赖项。请阅读以下代码以理解问题陈述: 我的代码是:Gradle任务依赖执行问题,gradle,build.gradle,Gradle,Build.gradle,我面临一个与gradle任务依赖性相关的问题。我的一个gradle任务正在成功调用另一个任务,但它没有执行第二个任务所依赖的依赖项。请阅读以下代码以理解问题陈述: 我的代码是: task callGradleDeploy <<{ tasks.deployComp.execute() } task deployComp (dependsOn: ['setEnvParameter', 'installWeb', 'installService']) <<{ pr
task callGradleDeploy <<{
tasks.deployComp.execute()
}
task deployComp (dependsOn: ['setEnvParameter', 'installWeb', 'installService']) <<{
println "Deployment Done"
}
task setEnvParameter {
//parameter Setting for deployement
}
task installWeb {
//install Web Code
}
task installService {
//install Services Code
}
task callGradleDeployTL;DR您的build.gradle
应如下所示:
task callGradleDeploy(dependsOn: ['deployComp']) {
}
task deployComp (dependsOn: ['setEnvParameter', 'installWeb', 'installService']) <<{
println "Deployment Done"
}
task setEnvParameter{
//parameter Setting for deployement
}
task installWeb{
//install Web Code
}
task installService{
//install Services Code
}
编辑
请参阅下面的解决方案。这样做的好处是可以一次性配置任务之间的依赖关系。要检查它是否正常工作,请运行gradle deploy-Pwc
或gradle deploy-Psc
task explodeWarContent {
doLast {
println 'Code to explode war'
}
}
task configureWebApp(dependsOn: explodeWarContent) {
doLast {
println 'Code to configure web app'
}
}
task stopWebApp {
doLast {
println 'Code to stop web app'
}
}
task uninstallWebApp(dependsOn: stopWebApp) {
doLast {
println 'Code to uninstall web app'
}
}
task installWebApp(dependsOn: configureWebApp) {
mustRunAfter uninstallWebApp
doLast {
println 'Code to install web app'
}
}
task startWebApp(dependsOn: installWebApp) {
mustRunAfter stopWebApp
doLast {
println 'Code to start web app'
}
}
task deployWebApp(dependsOn: [uninstallWebApp, startWebApp]) {
onlyIf { project.hasProperty('wc')}
}
task configureService {
doLast {
println 'Code to configure service'
}
}
task stopService {
doLast {
println 'Code to stop service'
}
}
task uninstallService(dependsOn: stopService) {
doLast {
println 'Code to uninstall service'
}
}
task installService(dependsOn: configureService) {
mustRunAfter uninstallService
doLast {
println 'Code to install service'
}
}
task startService(dependsOn: installService) {
mustRunAfter stopService
doLast {
println 'Code to start service'
}
}
task deployService(dependsOn: [uninstallService, startService]) {
onlyIf { project.hasProperty('sc')}
}
task deploy {
dependsOn deployWebApp, deployService
}
TL;DR您的build.gradle
应如下所示:
task callGradleDeploy(dependsOn: ['deployComp']) {
}
task deployComp (dependsOn: ['setEnvParameter', 'installWeb', 'installService']) <<{
println "Deployment Done"
}
task setEnvParameter{
//parameter Setting for deployement
}
task installWeb{
//install Web Code
}
task installService{
//install Services Code
}
编辑
请参阅下面的解决方案。这样做的好处是可以一次性配置任务之间的依赖关系。要检查它是否正常工作,请运行gradle deploy-Pwc
或gradle deploy-Psc
task explodeWarContent {
doLast {
println 'Code to explode war'
}
}
task configureWebApp(dependsOn: explodeWarContent) {
doLast {
println 'Code to configure web app'
}
}
task stopWebApp {
doLast {
println 'Code to stop web app'
}
}
task uninstallWebApp(dependsOn: stopWebApp) {
doLast {
println 'Code to uninstall web app'
}
}
task installWebApp(dependsOn: configureWebApp) {
mustRunAfter uninstallWebApp
doLast {
println 'Code to install web app'
}
}
task startWebApp(dependsOn: installWebApp) {
mustRunAfter stopWebApp
doLast {
println 'Code to start web app'
}
}
task deployWebApp(dependsOn: [uninstallWebApp, startWebApp]) {
onlyIf { project.hasProperty('wc')}
}
task configureService {
doLast {
println 'Code to configure service'
}
}
task stopService {
doLast {
println 'Code to stop service'
}
}
task uninstallService(dependsOn: stopService) {
doLast {
println 'Code to uninstall service'
}
}
task installService(dependsOn: configureService) {
mustRunAfter uninstallService
doLast {
println 'Code to install service'
}
}
task startService(dependsOn: installService) {
mustRunAfter stopService
doLast {
println 'Code to start service'
}
}
task deployService(dependsOn: [uninstallService, startService]) {
onlyIf { project.hasProperty('sc')}
}
task deploy {
dependsOn deployWebApp, deployService
}
我是这样想的,但问题是我有3个独立的deployComp任务,我需要根据条件在callGradleDeploy任务中调用它们。表示如果只有条件1则部署Comp1,如果只有条件2则部署Comp2。。类似于..@VinayVerma,然后定义依赖项并使用它来设置特定任务是否运行。好的,我将尝试这种方法。:-)谢谢嗨@Opal无论我做了什么,我只编辑了我的问题。请看第二部分请检查我这样想的代码,但问题是我有3个独立的deployComp任务,我需要根据条件在callGradleDeploy任务中调用它们。表示如果只有条件1则部署Comp1,如果只有条件2则部署Comp2。。类似于..@VinayVerma,然后定义依赖项并使用它来设置特定任务是否运行。好的,我将尝试这种方法。:-)谢谢嗨@Opal无论我做了什么,我只编辑了我的问题。请看一下它的第二部分请检查代码