创意项目

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

IdeaProject.ipr(org.gradle.api.Action)

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'
默认使用ideajava插件:
例如,用于运行 Gradle 的 Java 版本'1.6'

IdeaLanguageLevel languageLevel

用于此项目的默认 Java 语言级别。

一般情况下,不建议更改该值。相反,我们鼓励您为 Gradle 项目设置sourceCompatibilitytargetCompatibility ,这样您就可以完全控制 Gradle 项目中的语言级别,并且意味着 Gradle 和 IDEA 将在编译时使用相同的设置。

如果未明确设置,则将此值计算为该 Idea 项目的 Idea 模块的最大语言级别。

默认使用idea插件:
JavaVersion.JAVA_1_6
默认使用ideajava插件:
project.sourceCompatibility

List<IdeaModule> modules

ipr 文件的模块。

请参阅文档中的示例IdeaProject

默认使用idea插件:
project.allprojects.idea.module

File outputFile

输出*.ipr

请参阅 文​​档中的示例IdeaProject

默认使用idea插件:
${project.projectDir}/${project.name}.ipr

Set<ProjectLibrary> projectLibraries

要添加到 IDEA 项目的项目级库。

默认使用idea插件:
[][scala-library]scala-base插件)
默认使用ideajava插件:
[][scala-library]scala-base插件)

JavaVersion targetBytecodeVersion

用于此项目的目标字节码版本。

一般情况下,不建议更改该值。相反,我们鼓励您为 Gradle 项目设置sourceCompatibilitytargetCompatibility ,这样您就可以完全控制 Gradle 项目中的语言级别,并且意味着 Gradle 和 IDEA 将在编译时使用相同的设置。

languageLevel未明确设置时,这将被计算为本 Idea 项目的 Idea 模块的最大目标字节码版本。

默认使用idea插件:
JavaVersion.JAVA_1_6
默认使用ideajava插件:
project.targetCompatibility所有 java 子项目的最高值或JavaVersion.JAVA_1_6如果未找到 java 项目。

String vcs

该项目的 vcs。

值与 IDEA 的“版本控制”首选项窗口中使用的值相同(例如“Git”、“Subversion”)。

请参阅 文​​档中的示例IdeaProject

Set<String> wildcards

通配符资源模式。

请参阅 文​​档中的示例IdeaProject

默认使用idea插件:
['!?*.java', '!?*.groovy']

方法详情

void ipr(行动)Action<? super XmlFileContentMerger>

启用高级配置,例如修改输出 XML 或影响现有 *.ipr 内容与 Gradle 构建信息合并的方式。

请参阅文档中的示例IdeaProject

脚本块详细信息

ipr{ }

启用高级配置,例如修改输出 XML 或影响现有 *.ipr 内容与 Gradle 构建信息合并的方式。

请参阅文档中的示例IdeaProject