IDEA 環境設置


工欲善其事,必先利其器。IDEA為我們提供了豐富的功能,但不代表你就用的趁手。我們應當根據自己的條件、需求合理的配置,從而駕馭好這匹悍馬。讓它成為我們編程的利器。下面就一些常用的配置做個說明。

 

IDEA運行環境設置

1.1 設置IDEA使用的JDK

在使用IDEA 2017時,要求JDK版本在Java8上。所以要配置環境變量JAVA_HOME為JDK8的。但是在大家的項目中,通常可能並不是JDK8。為了能夠區別開來,各用各的JDK。可以在機器上安裝多個JDK版本。然后在環境變量中配置各自的環境變量即可。

Windows上,IDEA查找環境變量的順序:

32位的搜索順序:

1)IDEA_JDK / PHPSTORM_JDK / WEBIDE_JDK / PYCHARM_JDK / RUBYMINE_JDK / CLION_JDK / DATAGRIP_JDK 。其中WEBIDE_JDK應用於 WebStorm、PhpStore 的2016.1之前版本。

2)${idea.config.path}\<product>.jdk文件

3)JDK_HOME環境變量

4)JAVA_HOME 環境變量

64位的搜索順序:

1)IDEA_JDK_64 / PHPSTORM_JDK_64 / WEBIDE_JDK_64 / PYCHARM_JDK_64 / RUBYMINE_JDK_64 / CLION_JDK_64 / DATAGRIP_JDK_64 。其中WEBIDE_JDK應用於 WebStorm、PhpStore 的2016.1之前版本。

2)\${idea.config.path}\<product>64.jdk文件

3)JDK_HOME環境變量

4)JAVA_HOME 環境變量

 

至於Linux、Mac上的,可以參考:

https://intellij-support.jetbrains.com/hc/en-us/articles/206544879-Selecting-the-JDK-version-the-IDE-will-run-under

 

1.2 JVM options設置

IDEA是Java程序,heap內存的大小對Java運行快慢很重要,要根據機器的情況適當的調整。

配置文件在${IDEA_HOME}/bin目錄下的idea.exe.vmoptions (For 32位程序),idea64.exe.vmoptions(For 64位程序)。

我的機器(虛擬機)內存是2.7G,做如此配置,可以不卡。如果機器內存足夠大,可以調整-Xmx2G,不要吝嗇。

 

1.3 IDEA System,Config文件位置調整

默認情況下,IDEA的運行時必要的數據文件(配置、index等)會放在系統的當前用戶的home目錄下(windows系統下是: c:\Documents and Settings\\${User}\.IntelliJIdea2017.3)。

項目中的文件通常會比較多,IDEA會為每個文件建立索引的,所以會占用不少的磁盤空間。我們可以將其轉移到其它磁盤。

當你有一個SSD時,你為了讓你的IDEA運行的更快,可以將這些文件放到SSD上。

 

怎么調整文件位置呢?

在${IDEA_HOME}/bin目錄下有一個idea.properties文件,假設你要將目錄 調整到D:/idea_data目錄下,應該做如下調整:

1) 關閉IDEA

2) 去掉idea.config.path、idea.system.path前的注釋。

3)將idea.config.path的值調整為d:/idea_data/config,將idea.system.path調整為d:/idea_data/system

4)從c:\Documents and Settings\${User}\.IntelliJIdea2017.3目錄下,將.IntelliJIdea2017.3目錄下的內容全部拷貝到d:/idea_data目錄下。

5)重啟idea,在C盤並不會重新生成索引文件(這說明你的配置生效了)。

我的調整如下:

 

定義了一個新的配置項:myidea.data.dir,然后讓idea.config.path,idea.system.path都使用它。

如果調整不生效,可以參考:

https://intellij-support.jetbrains.com/hc/en-us/articles/207240985-Changing-IDE-default-directories-used-for-config-plugins-and-caches-storage

IDEA Settings

在工具欄或者File>Settings都可以打開idea軟件設置。下面要調整在設置在Settings中進行。

 

2.1 使用Eclipse的按鍵設置

如果是從Eclipse轉向IDEA的,對Eclipse按鍵已經熟知了,不想再花時間去研究IDEA的按鍵設置時,可以配置此項。

Settings 》Keymap,調整為Eclipse即可。

2.2 使用自己安裝的Maven,使用指定的本地倉庫

Eclipse可以指定自己安裝的Maven,IDEA自然也是可以的了。調整方案與Eclipse上類似。具體如下:

Settings 》Build,Exection,Deployment 》BuildTools 》Maven

1) 設置maven home directory,

2) 設置User settings file

3) 修改local倉庫。

修改完畢后,確認一下Path Variables中的MAVEN_REPOSITOR的值是否正確。具體方法:切到Settings > Appearance & Behavior > Path Variables區域后自然可見。

如果使用Gradle作為構建工具,調整方案類似。

2.3 使用Eclipse編譯器替代javac

使用Eclipse編譯器有如下好處:

1、即便代碼有錯,也是可以編譯調試的。如果用過Eclipse,會有"process error,仍然要執行嗎?"的提示框,就是這個原因。

2、可以增量編譯,即只編譯有改動的java文件。

3、利用多核cpu並行編譯。

這些好處是javac不具備的,自然要選擇它了。

調整方法:

Settings 》Build,Execution,Deployment 》Complier 》 Java Compiler

修改 Use compiler 為 Eclipse。

如果內存足夠的話,可以同時開啟Compile independent modules in parallel

2.4 關閉Validation

使用Eclipse時,我們通常會將validation關閉,目的是加快構建速度。特別是要關閉JavaScript的驗證。使用IDEA了,同樣要關閉校驗了。設置方案:

Settings 》Build,Execution,Deployment 》 Validation ,將Validate on build的勾去掉。

2.5 關聯SCM client

IDEA 可以支持各種各樣的SCM工具(也稱為VCS工具),例如:CVS, Git,  Subversion, Mercurial, Perforce, TFS (微軟的一款產品)。但IDEA本身不含有這些SCM工具的客戶端,這就需要我們接入相應的客戶端之后才可使用。

集成SVN

下面以SVN為例,svn的客戶端程序就是svn.exe,我們只需要想辦法讓IDEA找到它即可。

一般有兩種方式:

1) 將svn.exe加入到系統的環境變量中,在IDEA Settings 》Version Control 》Subversion中將use command line client 打勾,並設置client為svn。

2)在IDEA Settings 》Version Control 》Subversion中將use command line client 打勾,並設置client為svn.exe在路徑。

在我的機器上,之前安裝有TortoiseSVN,它里面也是有svn命令行工具的,名字就叫svn.exe。所以我的配置就是:C:\Program Files\TortoiseSVN\bin\svn.exe

如果你本地安裝的SVN客戶端是其它的,只要找到它的命令行可執行程序,按照上面方法接入即可。

如果你本地安裝的也是TortoiseSVN,但在TortoiseSVN的bin目錄下,沒有找到svn.exe,那說明你是沒有安裝svn的命令行的,就需要啟動TortoiseSVN的安裝程序,選擇command line模塊安裝即可。

集成Git

集成Git,同樣也有兩種方式:

1)將git.exe加入到系統的環境變量中,在IDEA Settings 》Version Control 》Subversion中設置client為git。

2)在IDEA Settings 》Version Control 》Git中設置client為git.exe在路徑。

例如我將Path to Git executable設置為:D:\Program Files\Git\cmd\git.exe

2.6 插件管理

IDEA和Eclipse能夠得到廣泛的應用的原因之一,就是有良好的插件機制。可以集成各種插件,當然了也有很多是我們可能根本不需要的插件,可以移除之。

Settings 》 Plugins,在這里可以進行插件安裝、卸載、啟用、禁用操作。

安裝插件可以采用在線安裝、本地安裝兩種方式。本地安裝方式參見2.8小節。

如果在下載插件過程中,發現很慢,可以設置Http Proxy的.參考2.7小節.

2.7 設置Plugin更新的Proxy

在下載國外的資源時,為了加快下載速度,通常會從兩個方向入手。1)從國內的mirror下載。2)使用Proxy來下載。IDEA在插件安裝時,是可以自定義HTTP Proxy的。在Settings 》Plugins 》install JetBrins plugin下有個Http Proxy Settings。

大家常用的HTTP Proxy就要數影梭(ShadowSocks)了。使用ShadowSocks也可以上google的,還是推薦大家用一下的。

2.8 插件本地方式安裝

在線安裝方式不用多說,選擇要安裝的插件自行安裝即可。如果你的機器不能聯網,譬如說在公司的內網情況下,想要安裝期望的插件時,就需要先下載好插件,然后選擇本地方式進行安裝。

在講本地安裝方式前,先說一下IDEA安裝插件的流程,以及相關目錄。

${IDEA_HOME}/plugins 這個目錄是IDEA內置插件(安裝好IDEA時已安裝的插件)的目錄。

${IDEA_CONFIG_PATH}/plugins 這個目錄是你自己安裝的插件的目錄(不論在線安裝,還是本地安裝)。

${IDEA_SYSTEM_PATH}/plugins 這個目錄是你將要安裝的插件的目錄。

你在線安裝的插件,下載完成后,就在這個目錄下,此時並沒有安裝。而是把要安裝這個插件的這個動作寫在一個action.script里(這是個二進制文件,不能直接看到內容的,也不需要看到)。在重啟IDEA時會根據這個action.script里的配置(配置了要安裝的插件ID,位置)來進行安裝,安裝完成后的插件放在${IDEA_CONFIG_PATH}/plugins目錄下。重啟完成后,之前下載的插件包會被清除的。

 

\${IDEA_CONFIG_PATH}、\${IDEA_SYSTEM_PATH} 的具體路徑參見1.3節。下面以findbugs插件為例,來說明如何本地方式安裝插件。

 

Findbugs 插件下載頁:https://plugins.jetbrains.com/plugin/3847-findbugs-idea

1)將findbugs下載到磁盤上,下載位置無限制(本地安裝方式,不需要放在${IDEA_SYSTEM_PATH}/plugins目錄下)。

2)Settings 》Plugins ,選擇 install plugin from disk,然后找到下載的插件包。

3)重啟IDEA。

插件檢索:對於在線安裝自不必說,本地安裝插件,可以在https://plugins.jetbrains.com/進行查找。

2.9 集成Diff、Merge 等比較工具

相信擁有多年開發經驗的你,對於Beyond Compare必定不陌生的。如果你已習慣了使用Beyond Compare作為常用的比較工具,你也是可以集成到IDEA中的。具體方法:

切到Settings 》Tools 》Diff & Merge 》External Diff Tools:

在Use external diff tool前打勾,設置BCompare.exe的路徑。

在Use external merge tool前打勾,設置BCompare.exe的路徑。

如果你熟悉其它diff tool 或者merger tool,也同樣可以設置的。

 

2.10 提高效率的快捷鍵

1) 內容選擇

A)Shift + Ctrl + 向左、向右

這組快捷鍵在絕大多數編輯器里都有的,IDEA,Eclipse,Word,EditPlus等。它用於根據單詞來選擇內容。

B)Shift + 向上、向下

這組快捷鍵在絕大多數編輯器里都有的,它用於根據單詞來選擇內容。

C)Shift + Alt + 向上、向下

與Shift + 向上、向下有不同的效果

D)Ctrl + A 全選,幾乎每個軟件都支持吧

 

2) 注釋代碼

Ctrl + / 用於對代碼加單行注釋

 

2.11 護眼設置

研究表明(不知道誰研究的),RGB設置為(R:199,G:233,B:204),藍光對眼傷害減小到最弱,我在Eclipse使用了該保護色2年時間了,已經習慣了。切到IDEA上,同樣設置了。

設置方式:

Settings 》Editor 》 Color Scheme 》 General

(有的版本可能在:Settings 》Editor 》 Color and Fonts》 General )

這里的Scheme代表配色主題,Scheme選擇default,編輯Text區域的Default text為 C7EDCC 或者設置RGB為(R:199,G:233,B:204)

2.12 在Project中隱藏IDEA、Eclipse的配置文件

在任何IDE中開發Project都會有IDE自身的配置文件,Eclipse、NetBeans都是這樣,IDEA也不能例外。然而這些文件我們平時是不會編輯的,對於有代碼潔癖的人可能不希望看到這些與項目無關的文件,這時不要忘了,IDEA可以將它們隱藏的。

Settings 》Editor 》File Types,在這個頁面里有一個 Ingore files and folder,用它可以做到的。

 

2.13 設置Java文件的Copyright

作為公司項目,在文件中加入copyright是必不可少的,使用它的好處也是不言而喻的。IDEA對這個也內置了支持,確實是amazing,不得不說為開發者考慮了不少。

Settings 》 Editor 》Copyright 》Copyright Profiles,在這里你可以創建公司使用的copyright信息,並指定一個唯一name。

然后在Settings 》 Editor 》Copyright 將default project copyright 指定為你創建的copyright。如此一來,在Settings 》 Editor 》Copyright 》 Formatting 下的那些類型的文件(Aspectj, CSS, ES6, Groovy, Java, HTML, JavaScript, JSP, JSPX, Less, Sass, Properties, TypeScript, XML)都可以根據它們各自的注釋符號使用這個copyright。

在Settings 》 Editor 》Copyright 》 Formatting 中,可以為不同類型的文件指定copyright的位置、注釋格式等。

如果要在copyright中使用變量,例如使用日期變量,可以用$today

Apache Velocity 中的日志格式化函數$date.format('yyyy-MM-dd',${today})測試不可用。對於要展示成yyyy-MM-dd格式的日志的,可以使用下面的代碼搞定:

#set($dMonth=$today.month)
#set($dDay=$today.day)
#if($dMonth<10)#set($dMonth="0"+$dMonth) #end
#if($dDay<10)#set($dDay="0"+$dDay) #end
這樣一來:yyyy-MM-dd風格的日志就可以用下面的表達式表示了:
${today.year}-${dMonth}-${dDay}

配置完畢后,

1)在創建相關文件時就會自動加上相關copyright的。

2)右鍵相關目錄、相關文件時,可以在菜單中使用update copyright命令。

3)在菜單欄Code下,也可以使用update copyright命令。

 

2.14 使用File Template來減少一些必要的工作量

每種文件,都有其自身的格式。例如HTML、XML、pom.xml等,這些東西是必不可少的,但我們平時只關注其填充的內容。如果有一個文件模板,能夠把這些格式化的內容預先配置好,這樣就會為日常開發又減少不少的工作量的。具體的設置方法:

Settings 》 Editor 》 File and Code Templates 。在該區域可以配置file 模板。

文件模板采用的是Apache Velocity 模板語言(類似於Freemarker的)來開發的,如果對此有了解,相信設置file template並不是什么難事。

如果對Apache Velocity沒有什么了解的,可以參考IDEA官方 help手冊:https://www.jetbrains.com/help/idea/creating-and-editing-file-templates.html,根據它也可以快速掌握file template的編寫技巧。

 

2.15 使用Live Template自定義代碼模板

在編寫代碼時,對於循環(for,foreach,while)等方式,SQL文件有insert。熟悉Eclipse的可能知道main可以快速打出來main方法,syso可以快速打出來輸出語句。IDEA也支持這些的,但是他們變成了psvm, sout了。另外代碼中最長用的當屬logger了, 在寫logger時通常要判定是否相關級別啟用了,例如:

 

 

// 以SLF4j寫法為例:
// 聲明Logger
private static final Logger logger = LoggerFactory.getLogger(Xxx.class);
 
// 使用logger
if(logger.isDebugEnabled()){
    logger.debug("xxxx");
}

對於這個我們完全可以利用live template來輔助生成代碼。

例如我是這樣定義的logger的:

Logger聲明:

用defl來觸發logger對象的定義,代碼模板如下:

private static final Logger logger = LoggerFactory.getLogger(Xxx.class);

使用時自己只需要替換一下類名即可。

 

用li來觸發info日志,代碼模板如下:

if(logger.isInfoEnabled()){
    logger.info("");
}

使用時自己只需要寫相關日志既可。同理,對於不同的日志級別,都設置這樣一個模板即可。

 

2.16 關閉不必要的代碼審查

使用IDEA時,它能幫我們分析、檢查各種文件中可能存在的問題,譬如說可能存在NPE、代碼需要抽取(表現在有大量重復)等。要查看文件中有哪些問題,在編輯窗口的右側即可看到,通常warn用黃色,error用紅色。這樣可以幫助我們減少代碼中的Bug。

但是我們不能對此依賴太多,也就是不能讓它檢查太多內容了,否則IDEA會變慢,內存不足的情況會嚴重影響開發效率。這其中讓人最煩的是泛型檢查了,在JDK7中的泛型加入了類型推斷,如果你的代碼里有JDK7之前的,例如List<String> arr = new ArrayList<String>();后面的尖括號中的String通常會寫的,但是IDEA就給你標warn了。

總之,我們需要將不必要的檢查去掉的。具體方式:在Settings > Editor > Inspections 區域,可以根據warn的提示,來快速搜索是哪條規則報出來的,將其關閉即可。

 

2.17 文件編碼、換行符設置

通常我們會將整個工作空間下的文件設置為UTF8編碼、換行符設置Unix下的換行符。

文件編碼統一

切到Settings > Editor > File Encodings 區域,將Global Encoding、Project Encoding、Properties Files 的文件編碼統一為UTF8

換行符統一

切到Settings > Editor > Code Style 區域,將 line separator 設置為:Unix and OS X

2.18 Tab鍵用4個空格替換

有的開發團隊,會要求制表符tab鍵用4個空格替換。設置方式:

切到Settings > Editor > Code Style ,在其下為各種語言的文件設置tab鍵、縮進等。將他們的Use tab character 勾掉即可。

 

2.19 打開Class,Package的模糊導入

在使用Eclipse時,如果有類沒有導入,可以通過兩種方式導入類。

1) 鼠標放上去,顯示可能存在的導入列表供你選擇

2) 使用Shift + Ctrl + O 自動識別導入。

在使用IDEA時,發現這點做得不如Eclipse好。

1) Alt + Enter 只能用一次。

2) 又不能自動推斷。其實並不是不能,而是模糊推斷的功能被關閉了。

打開方式:切到 Settings > Editor > General > Auto Import 區域,選擇 Add unambiguous imports on the fly。

 

2.20 切換扁平風格與層疊風格的導航

在IDEA的導航欄的展現風格,和Eclipse一樣,支持兩種風格:扁平式、層疊式。

扁平式:包名整個平鋪展現,便於使用IDEA包搜索快速檢索。這種方式適合於項目結構、包名並不是很清晰的開發者。有密集恐懼症的人不適合。

層疊式:包名以樹狀方式展現。這個方式適合於項目結構,包名清晰的開發者。

切換方式:

在package瀏覽器中設置,勾上Flatten Package是扁平風格,勾掉是層疊風格。

 

2.21 關閉package瀏覽器中的 show Members

個人認為這個是多此一舉了,開啟他會拖慢目錄下文件展開速度的。此外,有文件Structure這個窗口,這個完全可以滿足需要的。

關閉方式:在package瀏覽器中設置,勾掉show Members

2.22 編輯多個tab時展示風格

在開發過程中,打開多個文件是很平常的。在大多數編輯器中,為了在編輯器盡可能多的展示文件內容,打開多個文件時,會隱藏一些。在IDEA中,可以選擇兩種風格:1)隱藏顯示不下的文件,2)鋪開所有的文件。這個可以根據個人喜好進行調掙。

調整方式如下:

切換到Settings > Editor > General > Editor tabs區域,可以看到有這樣一個開關:Show tabs in single row。

 

2.23 設置project | module 構建的JDK版本

一個project中存在多個module是很常見的,有時為了需要,這些模塊可能會使用多個JDK版本。如何指定呢?

打開 File > Project Structure > Project Setting ,

在project 區域,可以設置整個project的JDK版本:

 

切到module區域,可以指定 module的JDK版本:

 

 

在設置完project,module的JDK版本后(上面 只是設置了SDK,Language版本),還需要對編譯器進行設置:

 

 2.24 自動插入serialVersionUID

 當一個類實現了Serializable接口時,我們應該為其指定serialVersionUID。在使用Eclipse時,如果一個類應該寫serialVersionUID時,是會自動提示的,並且當點擊相關提示時,會自動生成serialVersionUID的,但是發現IDEA並沒有。

Settings > Editor > Inspections , 把serializable class without serialVersionUID勾上即可。

 

接下來在相關類上使用Alt+Enter就可以生成了。 

 

2.25 Properties文件顯示中文

在java程序開發中,properties文件可以說是最常用的配置文件之一。其中一個重要的一項是作為國際化文件。

對於國際化文件時,我們平時期望是:在文件中編寫中文,自動轉碼。這樣來避免使用native2ascii。

但默認情況下,並不會顯示為中文的。配置方式:

Settings > Editor > File Encoding ,選中后,在配置頁的最下面有:

把Transparent native to ascii 打勾即可。

 

2.26 Properties 文件里的中文設置默認大小寫

目前項目組中有一大部分人已轉向使用IDEA來開發了。在對於java .properties 文件的保存處理中,Eclipse與IDEA處理不同:

Eclipse: 會將所有的中文轉為 小寫
IDEA:會將所有的中文轉為 大寫

這樣會導致其他人下次更新代碼時,有可能出現代碼沖突的問題。所以為了避免該問題的發生,需要將兩者統一。Eclipse目前沒有找到改變大小寫的配置。

IDEA 可以通過在 bin/idea.propertie中配置來修改。所以所有使用IDEA的同學,請做如下配置:

 

# ${IDEA_HOME}/bin/idea.properties 文件中修改:
idea.native2ascii.lowercase=true

 

用了幾天時間,目前遇到的問題,就這么多。歡迎大家補充,讓我們的IDEA健步如飛,變成真正的編程利器。


免責聲明!

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



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