配置Gradle项目

走着路睡觉大约 3 分钟

配置Gradle项目

概述

Gradle plugin 的源码是gradle-intellij-pluginopen in new window ,插件提供了Gradle的task

Gradle plugin的配置文件是 build.gradle.kts 或者 build.gradle

task列表

Gradle plugin 的属性基本上都有默认值,满足基本需求

查看task详情,可以参考READMEopen in new window ,需要注意以下几点:

这里提供了一些开源的插件open in new window

配置Gradle plugin的功能

默认情况下,是用最新版本的 IntelliJ IDEA Community Edition 构建的Gradle plugin,如果自己本地 IntelliJ IDEA Community Edition和Gradle plugin不兼容,那么Gradle plugin会自动下载所对应的IntelliJ IDEA Community Edition版本和JetBrains Java Runtime.

IntelliJ Platform 配置 (build.gradle.kts)

设置Setup DSL的 intellij.version 和 intellij.type 2个属性,来指明创建项目所需要的 intellij版本和类型

intellij {
  version.set("2021.2.4")  //idea 版本
  type.set("IC") // 可以不配置,默认值为 'IC'  
                 //   'IC' - IntelliJ IDEA Community Edition.
                 //   'IU' - IntelliJ IDEA Ultimate Edition.
                 //   'CL' - CLion.
                 //   'PY' - PyCharm Professional Edition.
                 //   'PC' - PyCharm Community Edition.
                 //   'RD' - Rider.
                 //   'GO' - GoLand.
                 //   'JPS' - JPS-only.
}

如果你选择的intellij 版本在仓库 中没有,或者用的是本地版本 那么可以用属性 intellij.localPath来指定安装目录,如果指定了intellij.localPath,那么intellij.version 和 intellij.type就不需要指定

插件依赖

插件可能依赖第三方插件,那么第三方插件的版本需要和IntelliJ Platform的版本兼容.

Gradle plugin 会加载属性 intellij.plugins 中配置好的插件

intellij {
  version.set("2021.2.4")  //idea 版本
  type.set("IC") // 可以不配置,默认值为 'IC'  
                 //   'IC' - IntelliJ IDEA Community Edition.
                 //   'IU' - IntelliJ IDEA Ultimate Edition.
                 //   'CL' - CLion.
                 //   'PY' - PyCharm Professional Edition.
                 //   'PC' - PyCharm Community Edition.
                 //   'RD' - Rider.
                 //   'GO' - GoLand.
                 //   'JPS' - JPS-only.
  
   plugins.add("java")  // 依赖三方插件
    plugins.add("yaml") // 依赖三方插件
}

注意,只是声明了依赖的第三方插件,还必须在项目中的 plugin.xml(src/main/resources/META-INF/plugin.xml) 文件里配置运行时依赖,详见文档

    <depends>com.intellij.java</depends>
    <depends>org.jetbrains.plugins.yaml</depends>

配置插件开发项目

默认情况下,Gradle plugin 会自动配置对应的IntelliJ Platform版本

PROJECT_ROOT/gradle/wrapper/gradle-wrapper.properties 可以控制gradle的版本

patching-dslopen in new window 可以修补 plugin.xml(src/main/resources/META-INF/plugin.xml) 中的一些属性

很多属性是有默认值的 例如:

  • 如果没有明确定义patchPluginXml.sinceBuild 和 patchPluginXml.untilBuild 的值, 那么这两个属性的值和指定版本的idea(通过intellij.version属性指定)中的sinceBuild和untilBuild的保持一致

  • 如果明确定义了patchPluginXml.sinceBuild 和 patchPluginXml.untilBuild 的值 ,那么这两个值将会替换plugin.xml 中设置的值

  • 如果只设置了patchPluginXml.sinceBuild的值,没设置patchPluginXml.untilBuild 的值,那么 plugin.xml将使用设置的patchPluginXml.sinceBuild,和patchPluginXml.untilBuild的默认值

为了统一管理插件的配置,最好的方案是用build.gradle的属性替换plugin.xml中的属性,

  • 例如,插件描述如果写在plugin.xml,如果需要html的元素,就需要用<![CDATA[]]>标签,配置在patchPluginXml,就不需要<![CDATA[]]>标签,

  • patchPluginXmlopen in new window 包含了很多属性,例如 修改内容(changeNotes)和 插件描述(pluginDescription)

提示

如果需要 changelog,那么可以使用 Gradle Changelog Pluginopen in new window

为了保持版本一致,如果修改了build.gradle中的project.version,plugin.xml中的<version>也将自动更新

上次编辑于:
贡献者: zhaojingbo
Loading...