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
的文档中的示例
- 委托给
XmlFileContentMerger
,来自ipr