IDEA插件開(kāi)發(fā)之環(huán)境搭建過(guò)程圖文詳解
基于IntelliJ Platform Plugin搭建
環(huán)境步驟
File->New->Project
選擇IntelliJ Platform Plugin

如果你這里沒(méi)有SDK環(huán)境,則添加一個(gè)SDK環(huán)境,選擇自己的idea的安裝的根目錄即可。
展示效果

基于Gradle搭建環(huán)境步驟
File->New->Project
選擇Gradle

next

進(jìn)來(lái)以后大概是這樣的一個(gè)界面,然后gradle會(huì)自動(dòng)build項(xiàng)目,下載相關(guān)的依賴(lài)。(可能會(huì)失敗)

遇到的問(wèn)題一,依賴(lài)ideaIC-2020.1.1.zip文件
build過(guò)程中下載ideaIC-2020.1.1.zip文件(根據(jù)不同的idea插件開(kāi)發(fā)版本這個(gè)文件也會(huì)隨之改變的),但是這個(gè)文件超特么的大500多M🙂🙂🙂,大不是問(wèn)題,但是太慢了,我中途還出超時(shí)出錯(cuò)過(guò),因此不我希望你們也遇到這個(gè)問(wèn)題,錯(cuò)誤大概是這樣的
A problem occurred configuring root project 'myplugin2'.
> Could not resolve all files for configuration ':detachedConfiguration1'.
> Could not download ideaIC-2020.1.1.zip (com.jetbrains.intellij.idea:ideaIC:2020.1.1)
> Could not get resource 'https://cache-redirector.jetbrains.com/www.jetbrains.com/intellij-repository/releases/com/jetbrains/intellij/idea/ideaIC/2020.1.1/ideaIC-2020.1.1.zip'.
> Read timed out
但是,這個(gè)等待的時(shí)間不是白白的浪費(fèi)了,至少我知道錯(cuò)誤在哪,下載什么文件失敗的,原來(lái)是下載這個(gè)路徑下的這個(gè)zip文件(而且通過(guò)這個(gè)URL也知道了jetbrains的release版本倉(cāng)庫(kù)在哪個(gè)位置了),于是ctrl+c 這個(gè)url,默默打開(kāi)我的迅雷X,開(kāi)啟了立即下載模式

等下載完成大概是這樣的,507 MB (532,523,505 字節(jié)),果然厲害,這個(gè)就是IDEA2020.1.1的社區(qū)版!

但是問(wèn)題來(lái)了我下載下來(lái)的文件放在哪呢,gradle的自動(dòng)編譯才能用我的這個(gè)zip包呢?
于是牽扯到了gradle的本地緩存了。
打開(kāi)系統(tǒng)盤(pán)下當(dāng)前用戶的.gradle目錄,進(jìn)入.gradle\caches\modules-2\files-2.1目錄,即為緩存文件的目錄。但是我怎么知道是哪個(gè)具體的目錄下呢?這個(gè)時(shí)候又是上面這個(gè)報(bào)錯(cuò)的url的地方,仔細(xì)看com/jetbrains/intellij/idea/ideaIC/2020.1.1/ideaIC-2020.1.1.zip這一段,這不就知道是哪個(gè)目錄了,于是進(jìn)入到.gradle\caches\modules-2\files-2.1\com.jetbrains.intellij.idea\ideaIC\2020.1.1目錄,再一看他是這樣的ff8c1b826417ce9d8a537b41e64d0253be9dbac0目錄名稱(chēng)(你的可能不是這樣的),我去,這個(gè)應(yīng)該是加密過(guò)的,但是是什么加密呢?,經(jīng)過(guò)了解知道了這個(gè)是SHA1加密,且是對(duì)文件進(jìn)行SHA1的加密生成的唯一字符串,但是windows上沒(méi)有這個(gè)命令,在線SHA1也太麻煩了,還要上傳文件,于是想到了Java的API,還有就是通過(guò)git hash命令行來(lái)實(shí)現(xiàn)。

把我們的文件ideaIC-2020.1.1.zip先臨時(shí)拷貝到這個(gè)目錄。運(yùn)行sha1sum.exe ideaIC-2020.1.1.zip命令,生成唯一的唯一字符串(用來(lái)校驗(yàn)文件的完整性),這樣就拿到這個(gè)640aff4c23a001e5595ee654670d774e9efcd118目錄名

接下來(lái)在2020.1.1目錄下,新建目錄640aff4c23a001e5595ee654670d774e9efcd118,將ideaIC-2020.1.1.zip移動(dòng)進(jìn)去即可。這樣就完成了手動(dòng)導(dǎo)入依賴(lài)的過(guò)程😎😎😎遇到的問(wèn)題二,gradle build過(guò)程中堆棧溢出。
描述如下
A build operation failed.
Java heap space >
Java heap space
解決方法,在IDEA項(xiàng)目根目錄下,新建文件gradle.properties,添加如下內(nèi)容,變更gradle Jvm參數(shù)
org.gradle.jvmargs=-Xmx2024m -XX:MaxPermSize=512m
然后就開(kāi)開(kāi)心心手動(dòng)構(gòu)建環(huán)境即可完成。
總結(jié)
搭建IDEA插件開(kāi)發(fā)環(huán)境方式很多,看個(gè)人開(kāi)發(fā)喜好,官方建議使用gradle的方式搭建比較全面。
搭建環(huán)境過(guò)程并不是一帆風(fēng)順,也花費(fèi)了挺多挺多的時(shí)間,其他人得解答也只是片段,并不能完美解決我的問(wèn)題,于是才有了這篇文章,后續(xù)打算開(kāi)發(fā)一個(gè)自己的插件,來(lái)解決自己的問(wèn)題,到時(shí)候再記錄把。
到此這篇關(guān)于IDEA插件開(kāi)發(fā)之環(huán)境搭建過(guò)程圖文詳解的文章就介紹到這了,更多相關(guān)IDEA插件開(kāi)發(fā)環(huán)境搭建內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot創(chuàng)建Docker鏡像的方法步驟
這篇文章主要介紹了SpringBoot創(chuàng)建Docker鏡像的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Java解決同時(shí)出庫(kù)入庫(kù)訂單號(hào)自動(dòng)獲取問(wèn)題解決
在Java中,處理多線程環(huán)境下的訂單號(hào)生成問(wèn)題可以采用多種策略,如使用AtomicLong保證線程安全,通過(guò)定義訂單號(hào)生成器并利用線程模擬出庫(kù)和入庫(kù)操作,每個(gè)線程從訂單號(hào)生成器中獲取唯一訂單號(hào),感興趣的朋友一起看看吧2024-09-09
SpringBoot集成ShardingSphere實(shí)現(xiàn)數(shù)據(jù)庫(kù)分表
ShardingSphere?是一個(gè)開(kāi)源的分布式數(shù)據(jù)庫(kù)中間件,旨在為應(yīng)用提供數(shù)據(jù)庫(kù)分片、讀寫(xiě)分離、分布式事務(wù)等功能,下面我們來(lái)看看SpringBoot如何集成ShardingSphere實(shí)現(xiàn)數(shù)據(jù)庫(kù)分表吧2024-12-12
Mybatis plus的自動(dòng)填充與樂(lè)觀鎖的實(shí)例詳解(springboot)
這篇文章主要介紹了Mybatis plus的自動(dòng)填充與樂(lè)觀鎖的實(shí)例詳解(springboot),本文給大家介紹的非常詳細(xì)對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
在idea中利用maven實(shí)現(xiàn)多環(huán)境配置自動(dòng)打包的流程步驟
這篇文章主要介紹了在idea中利用maven實(shí)現(xiàn)多環(huán)境配置自動(dòng)打包的流程步驟,文中通過(guò)圖文和代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定幫助,需要的朋友可以參考下2024-11-11
maven配置阿里云倉(cāng)庫(kù)的實(shí)現(xiàn)方法(2022年)
本文主要介紹了maven配置阿里云倉(cāng)庫(kù)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Java EE過(guò)濾器優(yōu)先級(jí)控制的實(shí)例解讀
通過(guò)使用@Priority注解,可以控制JavaEE應(yīng)用中過(guò)濾器的執(zhí)行順序,在上面的示例中,我們通過(guò)設(shè)置不同的優(yōu)先級(jí),實(shí)現(xiàn)了TimeFilter和LogFilter的執(zhí)行順序控制2025-02-02
Spring AspectJ 實(shí)現(xiàn)AOP的方法你了解嗎
這篇文章主要為大家介紹了Spring AspectJ 實(shí)現(xiàn)AOP的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-01-01

