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健步如飞,变成真正的编程利器。

posted @ 2018-01-04 14:06  乐享程序员  阅读(10155)  评论(0编辑  收藏  举报