如何将多个gradle脚本调用到其他gradle脚本中

时间:2011-06-13 13:22:52

标签: gradle

我正在将ant脚本转换为gradle。我已经改变了

<ant antfile="build.xml"
             target="clean"/>

task buildclean(type: GradleBuild)<< {
    buildFile ='build.gradle'
    tasks['clean']
}

task buildelocket(type: GradleBuild)<< {
    buildFile ='bussniess/build.gradle'
    tasks['elocket']
}

这个gradle脚本正在调用另外三个gardle脚本。当我在同一个gradle脚本下从其他任务调用buildclean任务时,它无法正常工作

task callingtasks <<{
    tasks.buildclean.excute()
    tasks.buildelocket.excute()
}

如何将多个gradle脚本调用到其他gradle脚本

1 个答案:

答案 0 :(得分:1)

我认为您的构建脚本存在两个问题:

  1. 删除“&lt;&lt;”在buildclean和buildelocket任务中。 &LT;&LT;是doLast {}的快捷方式,但GradleBuild类型的任务的buidfile和任务属性应该在配置阶段设置,而不是在执行阶段:

    task buildclean(type: GradleBuild) {
        buildFile ='build.gradle'
        tasks << 'clean'
    }
    
    task buildelocket(type: GradleBuild){
         buildFile ='bussniess/build.gradle'
         tasks << 'elocket'
    }
    
  2. 由于多种原因,您应该避免通过execute()显式执行任务。尝试

    task callingtasks(dependsOn: ['buildclean', 'buildelocket']){
    }