API 文档 | IdeaProject |
---|
允许微调 IDEA 插件的项目详情 (*.ipr 文件)。
一个包含所有可能属性的混合示例。通常您无需直接配置 IDEA 模块,因为 Gradle 会为您配置。
import org.gradle.plugins.ide.idea.model.* plugins { id 'java' id 'idea' } idea { project { //if you want to set specific jdk and language level jdkName = '1.6' languageLevel = '1.5' //you can update the source wildcards wildcards += '!?*.ruby' //you can configure the VCS used by the project vcs = 'Git' //you can change the modules of the *.ipr //modules = project(':some-project').idea.module //you can change the output file outputFile = new File(outputFile.parentFile, 'someBetterName.ipr') //you can add project-level libraries projectLibraries << new ProjectLibrary(name: "my-library", classes: [new File("path/to/library")]) } }
为了解决边缘情况,用户可以对生成的 XML 文件执行高级配置。也可以通过 beforeMerged 和 whenMerged 闭包来影响 IDEA 插件合并现有配置的方式。
beforeMerged 和 whenMerged 闭包接收 Project
对象
高级配置示例
plugins { id 'java' id 'idea' } idea { project { ipr { //you can tinker with the output *.ipr file before it's written out withXml { def node = it.asNode() node.appendNode('iLove', 'tinkering with the output *.ipr file!') } //closure executed after *.ipr content is loaded from existing file //but before gradle build information is merged beforeMerged { project -> //you can tinker with Project } //closure executed after *.ipr content is loaded from existing file //and after gradle build information is merged whenMerged { project -> //you can tinker with Project } } } }
属性 | 描述 |
ipr | |
jdkName | 用于定义项目 SDK 的 Java 版本。 |
languageLevel | 此项目的默认 Java 语言级别。 |
modules | ipr 文件的模块。 |
outputFile | 输出 *.ipr |
projectLibraries | 要添加到 IDEA 项目的项目级库。 |
targetBytecodeVersion | 此项目的目标字节码版本。 |
vcs | 项目的 VCS。 |
wildcards | 通配符资源模式。 |
方法 | 描述 |
ipr(action) | 启用高级配置,例如修改输出 XML 或影响现有 *.ipr 内容与 Gradle 构建信息合并的方式。 |
块 | 描述 |
ipr | 启用高级配置,例如修改输出 XML 或影响现有 *.ipr 内容与 Gradle 构建信息合并的方式。 |
String
jdkName
用于定义项目 SDK 的 Java 版本。
请参阅 IdeaProject
文档中的示例
- 与
idea
插件的默认值 - 用于运行 Gradle 的 Java 版本,例如
'1.6'
- 使用
idea
和java
插件时的默认值 - 用于运行 Gradle 的 Java 版本,例如
'1.6'
IdeaLanguageLevel
languageLevel
此项目的默认 Java 语言级别。
通常不建议更改此值。相反,建议为 Gradle 项目设置 sourceCompatibility
和 targetCompatibility
,这样您可以完全控制 Gradle 项目中的语言级别,这意味着 Gradle 和 IDEA 在编译时将使用相同的设置。
当未明确设置时,此值将计算为此 Idea 项目的 Idea 模块的最大语言级别。
- 与
idea
插件的默认值 JavaVersion.JAVA_1_6
- 使用
idea
和java
插件时的默认值 project.sourceCompatibility
List
<IdeaModule
>
modules
List
<IdeaModule
>ipr 文件的模块。
请参阅 IdeaProject
文档中的示例
- 与
idea
插件的默认值 project.allprojects.idea.module
File
outputFile
输出 *.ipr
请参阅 IdeaProject
文档中的示例。
- 与
idea
插件的默认值 ${project.projectDir}
/${project.name}
.ipr
Set
<ProjectLibrary
>
projectLibraries
Set
<ProjectLibrary
>要添加到 IDEA 项目的项目级库。
- 与
idea
插件的默认值 []
(使用scala-base
插件时为[scala-library]
)- 使用
idea
和java
插件时的默认值 []
(使用scala-base
插件时为[scala-library]
)
JavaVersion
targetBytecodeVersion
此项目的目标字节码版本。
通常不建议更改此值。相反,建议为 Gradle 项目设置 sourceCompatibility
和 targetCompatibility
,这样您可以完全控制 Gradle 项目中的语言级别,这意味着 Gradle 和 IDEA 在编译时将使用相同的设置。
当 languageLevel
未明确设置时,此值将计算为此 Idea 项目的 Idea 模块的最大目标字节码版本。
- 与
idea
插件的默认值 JavaVersion.JAVA_1_6
- 使用
idea
和java
插件时的默认值 - 所有 Java 子项目的最高
project.targetCompatibility
值,如果未找到 Java 项目,则为JavaVersion.JAVA_1_6
。
void
ipr
(Action
<? super XmlFileContentMerger
>
action)
Action
<? super XmlFileContentMerger
>启用高级配置,例如修改输出 XML 或影响现有 *.ipr 内容与 Gradle 构建信息合并的方式。
请参阅 IdeaProject
文档中的示例
启用高级配置,例如修改输出 XML 或影响现有 *.ipr 内容与 Gradle 构建信息合并的方式。
请参阅 IdeaProject
文档中的示例
- 委托给
- 来自
ipr
的XmlFileContentMerger