gradle、idea 插件和多项目设置

epr*_*rst 6 intellij-idea gradle

我正在尝试设置一个具有想法支持的多模块 gradle 项目。它一直有效,直到我将项目范围的 gradle.properties 添加到组合中。这是一个例子:

gradle.属性:

javaVersion = 1.8
Run Code Online (Sandbox Code Playgroud)

gradle.设置:

include 'module_a'
Run Code Online (Sandbox Code Playgroud)

构建.gradle:

allprojects {
  apply plugin: 'idea'
  idea {
    project {
      jdkName = javaVersion
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

module_a 是一个空子文件夹。

gradle idea失败了:

Build file 'project/build.gradle' line: 7

* What went wrong:
A problem occurred evaluating root project 'project'.
> Cannot set property 'jdkName' on null object
Run Code Online (Sandbox Code Playgroud)

可能是什么原因?

问题2:子项目是否可以对全局idea任务进行修改,例如

idea.module.generatedSourceDirs += file('srm/main/java.generated')
Run Code Online (Sandbox Code Playgroud)

module_a仅当放入时才会有影响吗module_a/build.gradle

谢谢

小智 4

您不能在每个子项目上设置“jdkName”,它只能在根项目上设置,如下所示:

idea {
  project {
    jdkName = "1.8"
    languageLevel = "1.8"
  }
  module {
    name = "My root project name"
  }
}
Run Code Online (Sandbox Code Playgroud)

在子项目中,您可以配置其他内容,例如

idea.module.testSourceDirs = idea.module.testSourceDirs+idea.module.sourceDirs
idea.module.sourceDirs = [] as Set
Run Code Online (Sandbox Code Playgroud)