Gradle任务依赖执行问题

Gradle任务依赖执行问题,gradle,build.gradle,Gradle,Build.gradle,我面临一个与gradle任务依赖性相关的问题。我的一个gradle任务正在成功调用另一个任务,但它没有执行第二个任务所依赖的依赖项。请阅读以下代码以理解问题陈述: 我的代码是: task callGradleDeploy <<{ tasks.deployComp.execute() } task deployComp (dependsOn: ['setEnvParameter', 'installWeb', 'installService']) <<{ pr

我面临一个与gradle任务依赖性相关的问题。我的一个gradle任务正在成功调用另一个任务,但它没有执行第二个任务所依赖的依赖项。请阅读以下代码以理解问题陈述:

我的代码是:

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无论我做了什么,我只编辑了我的问题。请看一下它的第二部分请检查代码