赞
踩
将Gradle构建支持功能添加到IntelliJ平台需要使用到最近发布的Gradle构建系统和IntelliJ IDEA(Community或者Ultimate版)。
下载并安装IntelliJ IDEA Ultimate版或者IntelliJ IDEA Community Edition版。
您可以点击 Settings | Plugins 来验证插件是否启用。
IntelliJ IDEA支持使用Gradle自动创建新的插件项目,并自动执行build.gradle中所有必要的设置。这也可以用于将现有插件转换为Gradle,如果Gradle在本例中无法转换现有项目,您需要将源码复制到新项目中。
要做到这一点,需要在IntelliJ IDEA中创建一个新项目,打开 File | New… | Project, 并在弹出的对话框中选择Gradle。并在“Additional Libraries and Frameworks”一栏中,勾选 “IntelliJ Platform Plugin”。
项目创建向导现在将指导您一步步完成项目创建的过程。您需要指定组ID、伪ID和版本:
建议选择Use default gradle wrapper
选项,这样IntelliJ IDEA将自动安装运行Gradle任务所需的一切东西。
最后,还需要指定一个将要使用的JVM Gradle,它可以是Project JDK。当项目创建后您还可以通过点击 Settings | Build, Execution, Deployment | Build Tools | Gradle 来配置该路径。
IntelliJ平台提供了对基于Gradle插件项目的支持gradle-intellij-plugin
。有关更多信息,请参考Gradle plugin README。例如,要配置 Sandbox Home 目录的位置,在项目的 build.gradle
文件中包含以下内容:
intellij {
sandboxDirectory = "$project.buildDir/myCustom-sandbox"
}
有关Sandbox Home默认主目录位置和内容的详细信息,请参阅IDE开发实例。
要将Gradle支持添加到现有的插件项目中,请在根目录下创建 build.gradle
文件,其中至少包含以下内容:
buildscript { repositories { mavenCentral() } } plugins { id "org.jetbrains.intellij" version "0.3.0" } apply plugin: 'idea' apply plugin: 'org.jetbrains.intellij' apply plugin: 'java' intellij { version 'IC-2016.3' //IntelliJ IDEA 2016.3 dependency; for a full list of IntelliJ IDEA releases please see https://www.jetbrains.com/intellij-repository/releases plugins 'coverage' //Bundled plugin dependencies pluginName 'plugin_name_goes_here' } group 'org.jetbrains' version '1.2' // Plugin version
然后,使用系统路径上配置的Gradle可执行文件,在命令行窗口执行以下命令:
gradle cleanIdea idea
这将清理任何现有的IntelliJ IDEA配置文件,并生成一个由IntelliJ IDEA识别的新的Gradle构建配置文件。刷新您的项目,然后点击 View | Tool Windows | Gradle 查看到Gradle工具窗口。可以看到IntelliJ IDEA已经识别到了Gradle。
现在将一个新的 HelloAction
类添加到Java文件夹中,并在 META-INF
文件夹中添加 plugin.xml
和 pluginIcon.svg
文件。有关 pluginIcon.svg
文件的更多信息,请参见Plugin Icon页面。
import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;
public class HelloAction extends AnAction {
public HelloAction() {
super("Hello");
}
public void actionPerformed(AnActionEvent event) {
Project project = event.getProject();
Messages.showMessageDialog(project, "Hello world!", "Greeting", Messages.getInformationIcon());
}
}
<idea-plugin> <id>org.jetbrains</id> <name>Hello Action Project</name> <version>0.0.1</version> <vendor email="dummy" url="dummy">dummy</vendor> <depends>com.intellij.modules.lang</depends> <extensions defaultExtensionNs="com.intellij"> </extensions> <actions> <group id="MyPlugin.SampleMenu" text="Greeting" description="Greeting menu"> <add-to-group group-id="MainMenu" anchor="last"/> <action id="Myplugin.Textboxes" class="HelloAction" text="Hello" description="Says hello"/> </group> </actions> </idea-plugin>
打开Gradle工具窗口并搜索 runIde
任务。如果列表中没有该选项,请点击顶部的刷新按钮,双击来运行它。
或者添加一个新的Gradle运行配置,配置如下:
启动新的Gradle运行配置。在运行窗口中,可以看到类似下面的输出信息。
最后,当IDE启动时,帮助菜单的右边应该有一个新的菜单。您的插件现在已经通过Gradle配置好了。
只要配置了Gradle支持,您就可以自动构建插件并将其部署到JetBrains Plugin Repository。要做到这一点,需要您先将插件发布到插件仓库。有关详细信息,请参阅publishing a plugin。
为了将插件提交到插件仓库,首先需要您提供JetBrains帐户凭证。这些凭证信息通常存储在Gradle properties。所以千万不要将这些凭证添加到源代码提交信息中。
将以下信息放在项目根目录下名为 gradle.properties
的文件中,或者放在 GRADLE_HOME/gradle.properties
中。
intellijPublishUsername="YOUR_USERNAME_HERE"
intellijPublishPassword="YOUR_PASSWORD_HERE"
然后在 build.gradle
文件中的 publishPlugin
任务中引用这些值:
publishPlugin {
username intellijPublishUsername
password intellijPublishPassword
}
如果将 gradle.properties
文件放置在项目的根目录中,请确保版本控制工具忽略此文件。例如在Git中,可以将以下行添加到 .gitignore
文件中:
gradle.properties
或者,您可以创建一个默认的 gradle.properties
模板,并默认 git
忽略将来对该文件的任何更改。为此,请检查默认模板并执行以下命令:
git update-index --assume-unchanged gradle.properties
如果您的项目已经有一个 gradle.properties
文件,您可以创建一个自定义 *.properties
文件,并手动加载它。例如:
apply from: "/path/to/custom.properties"
Gradle-IntelliJ-plugin为如何使用Gradle构建您的插件提供了许多[configuration options](configuration options)(配置选项)。其中一个最重要的是 version(版本)
。 默认情况下,如果在构建脚本中修改 version
,Gradle插件将自动更新 plugin.xml
文件中的 <version>
。
Gradle插件还将更新 plugin.xml
文件中的 <idea-version since-build=.../>
,以与 intellij.version
匹配,直到当前主版本中的最后一个版本为止。当然,您也可以通过将 intellij.updateSinceUntilBuild
选项设置为 false
来禁用此功能。
apply plugin: 'org.jetbrains.intellij'
intellij {
version '15.0.1'
pluginName 'idear'
intellij.updateSinceUntilBuild false //Disables updating since-build attribute in plugin.xml
}
group 'com.jetbrains'
version '1.2' // Update me!
当您使用包含上述代码段的构建脚本运行 Gradle runIdea
时,Gradle将从Snapshot(基于时间的)或Release(基于版本)的仓库下载IntelliJ IDEA的适当版本,配置插件沙箱,安装插件,并启动新的IDE。这个任务可以直接从命令行运行,而不需要任何其他工具帮助。
为了获得最稳定的效果,插件开发人员应该使用固定的版本,而不是 LATEST-TRUNK-SNAPSHOT(最新版本)
。有关IntelliJ平台的可用版本信息,您可以参考以下URL获取最新的更新:
部署插件的第一步是确认插件能否正常工作。您可以通过在新的IntelliJ IDEA Community Edition版本上选择 installing your plugin from disk(从磁盘上安装插件)
来验证这一点。一旦您确信插件可以按照预期正常运行,发布前请确保插件版本已更新,因为JetBrains插件仓库不会接受具有相同版本的多个文件。要将插件的新版本部署到JetBrains插件仓库,请执行以下Gradle命令:
gradle publishPlugin
现在查看插件的最新版本是否出现在 Plugin Repository
中。如果插件部署成功,在符合条件的IntelliJ平台上安装您的插件的任何用户都将在启动IDE时收到可用更新的通知。
您还可以通过配置 intellij.publish.channel
属性将插件部署到您选择要发布的渠道。当该属性为空时,将使用默认的插件仓库,并且所有JetBrains plugin repository用户都可以访问到。当然,您也可以发布到任意命名的渠道。但是不管怎样这些非默认的发布渠道都将被视为单独的仓库。当使用非默认发布渠道时,用户需要添加一个新的custom plugin repository(自定义插件库)来安装插件。例如,如果指定 intellij.publish.channel 'canary'
,则用户将需要添加 https://plugins.jetbrains.com/plugins/canary/list
仓库来安装插件并接收更新。流行的渠道名称包括:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。