IDEA插件開發筆記001環境搭建(使用Gradle插件方式)


作者說明

此文章為原創文章,在博客園發表的作者,和微信訂閱號“勉以知 知為智”('Life_Tech_Thinking')均為作者本人。

小記

今天鼓搗了一天IDEA Community的插件開發環境,現在總結一些關鍵點

閱讀文檔

超級詳細的開發文檔IntelliJ Platform SDK DevGuide

快速入門可以閱讀Creating Your First Plugin

注意事項 IDE Development Instances文檔有一個重要說明,運行插件程序之后,他會啟動之后的IDEA實例,這個實例需要運行在IDEA配套的JetBrains的Runtime。也就是 JBR。如果啟動之后的Runtime不是JBR,就不太好,可能有問題。后面會重點講如何解決這個問題。

步驟

安裝Gradle

Gradle有幾個要素:

GRADLE_USER_HOME系統環境變量,因為Gradle用到了Cache,這個Cache默認在 USER.DIR/cache目錄,也就是在C盤,這對於Windows用戶來說,這能忍?
因此我指定這個變量GRADLE_USER_HOME=H:\GradleData,這樣每次Gradle下載的目錄都在這個目錄下,不會占用C盤空間。

PATH 直接添加GRADLE安裝路徑的bin目錄。

gradle.properties這個文件是跟着GRADLE_USER_HOME走的,在GRADLE_USER_HOME\gradle.properties, 這個文件用於配置全局屬性。

Gradle使用代理開發IDEA插件,會下載IDEA的二進制發行包,以及他的源碼,不設置代理,幾乎不可能下載成功的。

這里給出Gradle的代理配置,根據實際需要修改:

systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=1080
systemProp.https.nonProxyHosts=localhost
systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=1080
systemProp.http.nonProxyHosts=localhost

安裝IDEA

電腦本身有IDEA的可以跳過,推薦使用 Jetbrains Tookbox安裝任意版本的IDEA。

根據IDEA的文檔,IDEA本身構建於IntelliJ Platform,他自己其實也是IntelliJ Platform。因此如果不想下載額外的Platform SDK可以經過配置直接使用,避免在Gradle運行插件時下載。

使用Jetbrains提供的官方Template

打開intellij-platform-plugin-template項目,登錄GitHub賬號之后才會看到文檔中所說的use this Template按鈕。

從IDEA中導入這個項目,如果要防止Gradle Wrapper自動運行,要提前設置 Gradle 使用安裝好的Gradle,而不是用Gradle-Wrapper,否則要下載Gradle,網絡不好的情況下又是一次折磨。

打開項目之后,可以看到 Gradle的構建配置文件 build.gradle.kts

// Configure gradle-intellij-plugin plugin.
// Read more: https://github.com/JetBrains/gradle-intellij-plugin
intellij {
    pluginName = pluginName
//    version = platformVersion 這里不打開這個選項,否則Gradle會從網上下載IDEA,本地有不想下載的。
    type = platformType
    localPath = intelliJPath //這里的IntelliJPath變量需要仿照其他的變量進行聲明,並且在 build.properties 中指定他的值。
//    localSourcesPath = intelliJSourcePath
    downloadSources = platformDownloadSources.toBoolean()
    updateSinceUntilBuild = true

//  Plugin Dependencies:
//  https://www.jetbrains.org/intellij/sdk/docs/basics/plugin_structure/plugin_dependencies.html
//
//  setPlugins("java")
}

//這里是Gradle-IntelliJ插件的Task的配置
tasks {

    runIde {
        jbrVersion("jbr-11_0_7b765.65")
    }

}

這里給出IDEA 文檔中的Gradle Guide的配置鏈接。

這里可以看到gradle-intellij-plugin的配置文件結構。

在tasks節點中配置 runIde.jbrVersion 為("jbr-11_0_7b765.65"),這個是我多次嘗試的結果,只有這樣啟動插件之后,啟動實例才會使用對應的JBR,否則會使用 Oracle的JDK。

這個版本的規則是什么?

IDE Development Instances文檔 中指出的地址中,可以看到Release notes。

這里IDE使用的版本是 2020.1.4,那么這個版本就選擇 20[201]4中括號對應的 201下方的最后一個版本:"11.0.7+10-b765.65"(可以在IDEA的 About看到這個版本代碼), 那么點進去會看到下載鏈接(不要下載)。

IntelliJ的JBR下載頁面是對應上面的下載鏈接的, 可以看到文件名。

jbr-11_0_7(-windows-x64)-b765.65.tar.gz 這個最終文件名去掉 jbr-11_0_7(-windows-x64)-b765.65括號中的平台號,得到jbrVersion=jbr-11_0_7b765.65

經過嘗試發現GRADLE是按照這個規則逆向計算出下載地址的。

自己下載JBR是沒用的,GRADLE還是會自己下載,他下載之后放進Cache才算完成。

啟動

在IDEA 右側的 Gradle選項卡 TAB,找到Task,RunIde 即可運行這個插件。

另外一個重要的問題,Debug源碼從哪里配置

有人說可以從Github 找到Community IDEA的源碼,可以切換到對應版本的TAG,例如 "201.8743.12",下載得到一個源碼壓縮包。這是IDEA 2020.1.4的對應版本。(此時已經有IDEA 2020.2了)

這里給出一種更加完美的方法:
https://www.jetbrains.com/intellij-repository/releases/ 這個網址給出了所有的IDEA二進制包,以及打包好的源碼。下載ideaIC-sources.jar得到源碼。

頁面上可以找到如下內容:

201.8743.12	2020-07-21 05:47:47 MSK	201.8743.12	BUILD.txt idea-community-resources-sources.jar idea-community-resources.jar idea-community-resources.pom ideaIC-sources.jar ideaIC.pom ideaIC.zip ideaIU-teamcity.pom ideaIU-teamcity.zip ideaIU-annotations.zip ideaIU.pom ideaIU.zip intellij-core.pom intellij-core.zip jps-build-test.jar jps-build-test.pom jps-standalone.pom jps-standalone.zip ruby-test-framework.jar ruby-test-framework.pom

在Project Structure中找到SDK,沒有就添加一個IntelliJ Platform SDK, 這樣就可以添加SourcePath,點擊+選擇剛剛下載好的源碼,完美。

總結

這篇筆記給出了僅下載JBR+源碼的配置方式,以及Gradle的簡單配置,避免下載IDEA的二進制包(比較大)。

重點講述了怎么保證啟動的IDEA實例使用正確版本的JBR。

目的在於配置好之后,在符合IDEA規范和建議的前提下,能愉快得專注於插件開發。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM