使用Gradle,是否可以直接调用GradleBuild而不是将其指定为类型?

Jör*_*erg 2 gradle

我在build.gradle中有这个:

task cleanCommon(type: GradleBuild) {
  buildFile = 'common/build.gradle'  
  tasks = ['clean']  
}

task cleanCrawler(type: GradleBuild) {
  buildFile = 'crawler/build.gradle'
  tasks = ['clean']
}

task cleanPortlet(type: GradleBuild) {
  buildFile = 'portlet/build.gradle'
  tasks = ['clean']
}

task cleanAll(dependsOn: ['cleanCommon', 'cleanCrawler', 'cleanPortlet']) { 
}
Run Code Online (Sandbox Code Playgroud)

它太冗长了.有什么方法可以做下面的伪代码吗?

taskCleanAll {
    GradleBuild.pleaseRunTask('common/build.gradle', 'clean')
    GradleBuild.pleaseRunTask('crawler/build.gradle', 'clean')
    GradleBuild.pleaseRunTask('portlet/build.gradle', 'clean')
}
Run Code Online (Sandbox Code Playgroud)

Pet*_*ser 7

您无法直接调用任务,但还有很多其他方法可以抽象代码.例如:

def createBuildTask(name, buildFile) {
    task "$name"(type: GradleBuild) {
        buildFile = buildFile
        tasks = ['clean']
    }
}  

createBuildTask("cleanCommon", "common/build.gradle")
createBuildTask("cleanCrawler", "crawler/build.gradle")
createBuildTask("cleanPortlet", "portlet/build.gradle")
Run Code Online (Sandbox Code Playgroud)

我想知道你为什么首先使用这个GradleBuild任务,但这是一个不同的讨论.

  • 我有三个单独的项目,彼此不知道任何事情,我只是想创建一个可以一次性构建它们的构建文件. (2认同)