| 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