使用Gradle多项目构建应用插件适用于主项目

时间:2019-07-15 18:18:14

标签: gradle build.gradle

在使用Gradle v5.5.1的多项目构建中,我试图将ear插件仅应用于某些子项目(如using plugins中所述)。您可以在此处看到我正在尝试将其应用于以EAR结尾的子项目:

subprojects { Project proj ->
  afterEvaluate { 
    if(proj.projectDir.name.endsWith('EAR')){
      logger.debug "{} looks like an EAR subproject", proj.name
      apply plugin: 'ear'
      defaultTasks 'ear'
    }
}

但是,它却将其应用于我的master项目(输出日志):

10:53:36.366 [DEBUG] [org.gradle.api.Project] MAG820PAYMENTRECONEAR looks like an EAR subproject
10:53:36.367 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Apply plugin org.gradle.ear to root project 'master'' started

然后,当执行我的子项目时,它说未找到ear任务:

10:53:36.375 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Task 'ear' not found in project ':MAG820PAYMENTRECON:MAG820PAYMENTRECONEAR'.

我知道这是可行的,因为我还有其他类似的项目在做,但是我不知道为什么这个项目如此工作。

我在做什么错??

1 个答案:

答案 0 :(得分:0)

只需使用proj.apply plugin: 'ear'来调用子项目上的方法