Gradle IntelliJ Plugin
Configuration
插件gradle-intellij-plugin 是用来协助插件项目配置,测试,验证,发布的工具
提示
gradle-intellij-plugin 最新版本是
插件gradle-intellij-plugin 可以在构建脚本里指定 IntelliJ SDK , bundled 或 third-party plugins.
还提供了下面的功能:
添加依赖
向 plugin.xml 里填充一些合适的标签,例如:name,version
patching compile tasks to instrument code with nullability assertions and form classes made with IntelliJ GUI Designer
额外添加一些构建步骤
提示
访问Issue Tracker 之前,需要把gradle-intellij-plugin插件和 Gradle更新到最新版本。如果需要提交修改,查看 CONTRIBUTING
使用
要启用该插件,需要在Gradle构建脚本(build.gradle 或 build.gradle.kts)的 plugins 部分配置以下内容(创建项目时,默认会配置好):
如果想把 gradle-intellij-plugin 脚本从0.x版本升级到1.x , 可以参考迁移文档:从0.x迁移到1.x
提示
Gradle 必须使用 Java 11 ( 配置方式:Settings/Preferences | Build, Execution, Deployment | Build Tools | Gradle)
提示
Gradle 必须使用 6.7.1 以上的版本。最好更新到最新的版本
#升级命令
./gradlew wrapper --gradle-version=VERSION
也可以参考:Gradle安装文档
快照版本
如果要使用 gradle-intellij-plugin 的快照,需要添加如下配置
配置缓存
Gradle也可以使用 configuration cache 来提升构建性能
gradle-intellij-plugin插件与缓存机制完全兼容,可以通过以下方式开启:
# 命令
gradle buildPlugin --configuration-cache
或者在 gradle.properties 文件中添加如下配置:
org.gradle.unsafe.configuration-cache = true
配置
IntelliJ Extension
构建脚本(build.gradle 或 build.gradle.kts)中的intellij extension部分可以用来配置插件,以及下文中Tasks 的公共配置:
version
必须配置,将会使用对应版本的 IntelliJ Platform IDE来构建插件,
- 最常用的是设置为IDE的版本:2022.1.1 或 IC-2022.1.1
- IDE的构建 number: 221.5080.210 或 IC-221.5080.210
- 快照:221-EAP-SNAPSHOT 或 LATEST-EAP-SNAPSHOT (需要配置快照仓库)
type
适用于什么IDE ,默认值为 IC,对应值如下,
- IC - IntelliJ IDEA Community Edition
- IU - IntelliJ IDEA Ultimate Edition
- CL - CLion
- PY - PyCharm Professional Edition
- PC - PyCharm Community Edition
- PS - PhpStorm
- RD - Rider
- GO - GoLand
- AI - Android Studio
- JPS - JPS-only
- GW - Gateway
plugins
默认值:[] , 配置依赖的插件 (bundled 插件或来自 JetBrains Marketplace 的插件),了解依赖详情可以查看文档:依赖
注意:
- 依赖JetBrains Marketplace 的插件时,格式为 pluginId:version
- 依赖bundled插件时,不能加版本号,格式为 pluginId 例如:org.intellij.groovy
- 依赖子项目,格式为:project(':subproject')
- 如果你想在项目中使用其它插件的类,就需要添加对应的插件为依赖
- 依赖[JetBrains Marketplace](https://plugins.jetbrains.com/) 的插件,格式:org.plugin.id:version[@channel] , 类型为 String :
- org.intellij.plugins.markdown:8.5.0
- org.intellij.scala:2017.2.638@nightly
- 依赖bundled插件 ,类型为String:
- org.intellij.groovy
- 依赖子项目,格式:project(...) , 类型为 Project :
- project(":projectName")
- project(":plugin-subproject")
更多配置请查看原文 Gradle IntelliJ Plugin
Tasks
runIde
配置运行插件项目时启动的IDE
- ideDir :IDE的本地源码地址
- jbrVersion : JetBrains Runtime (JBR) version
- jbrVariant : JetBrains Runtime (JBR) variant
- autoReloadPlugins :启用动态插件的自动重新加载 ,默认为true。
runPluginVerifier
使用IntelliJ Plugin Verifier 可以检查插件是否兼容目标IDE,关联文档:检测插件兼容性
通过插件gradle-intellij-plugin 的task runPluginVerifier { ... } 可以定义需要检测的目标IDE列表、指定工具版本、以及一些可选配置
提示
从IntelliJ Plugin Verifier 仓库中可以了解更多详情,示例或issues 报告,
提示
To run Plugin Verifier in -offline mode, set the Gradle offline start parameter.
ideVersions :要检查的IDE版本,类型为 List<String> ,例如 ["IC-2019.3.5", "PS-2019.3.2"] 。版本号可以在 Other IntelliJ IDEA Versions 中找到,也可以在IntelliJ Platform Builds list 也可以找到所有已有版本
verifierVersion :IntelliJ Plugin Verifier 的版本,默认值 LATEST ,如非必要,不要修改
verifierPath : IntelliJ Plugin Verifier jar包的本地路径,如果配置了这个,将会忽略上面的 verifierVersion
localPaths :要检查的IDE版本,类型为 List<File> ,需要验证的本地安装的IDE路径。
distributionFile : 一般不需要设置
failureLevel :要验证的错误等级,格式为 FailureLevel enum 或 EnumSet<FailureLevel> ,例如:org.jetbrains.intellij.tasks.RunPluginVerifierTask.FailureLevel.COMPATIBILITY_PROBLEMS
verificationReportsDir : 检测报告的存储位置,类型为 String ,默认值:${project.buildDir}/reports/pluginVerifier
downloadDir : 需要被检测的目标IDE的下载路径,默认值为 System.getProperty("plugin.verifier.home.dir")/ides
jbrVersion :插件运行的 JetBrains Runtime (JBR) version
jbrVariant :插件运行的 JetBrains Runtime (JBR) variant
runtimeDir : JVM的路径,覆盖上面的 jbrVersion
externalPrefixes : 外部库中的类前缀,类型为 List<File>
teamCityOutputFormat :控制输出路径的flag
subsystemsToCheck :指定应检查IDE的哪些子系统。
更多task 请查看原文 Gradle IntelliJ Plugin