IDEA:问题解决与使用技巧

以下内容纯属个人扯淡,仅供参考

说明:IDEA版本号为:2019.3.5 Ultimate Edition

本人用的插件

插件名称 作用 使用方式
String Manipulation 字符串操作  
Codota 代码智能提示  
Rainbow Brackets 彩虹括号  
Lombok 减少冗长代码 项目pom.xml需要依赖jar包,再在pojo上注解
Key Promoter X 快捷键提示  
Maven Helper 方便maven构建 项目右键/Run Maven
CodeGlance    
Free Mybatis plugin    
Grep Console    
HexView    
jclasslib Bytecode viewer    
RestfulToolkit    
Translation    
Alibaba Java Coding Cuidelines    
Canmelcase    
Gsonformat    
     

快捷键

参考:IntelliJ IDEA中快捷键大全

Ctrl F/R 文件内搜索/替换文本内容
  N 全局搜索(连续两下Shift也可以)文件名、方法、变量
  H 类继承关系图
  Y、X、C、D

行级:删除、剪切、复制、复制当前行到下一行

  F12 Alt+7的简单版/弹框版
  E 最近的文件、操作(终端、版本控制)
  鼠标左键

作用在:

1)编辑框文件名:Show In Explorer,可以打开该文件所在路径任一级位置

  Z 撤销一次内容操作
Alt 7 查看当前类的结构,列出属性、方法等
  反引号 git/svn常用操作菜单
  insert 常用方法生成:get/set、toString、hashCode、构造器、equals等等
Shift F6 重构式重命名(变量名、文件名、目录名等)。即:右键菜单-Refactor-Rename
  Tab 反向Tab缩进
Ctrl+Shift F/R 全局搜索/替换文本内容
  Z 取消撤销
  U 对选中内容,大小写切换
  F8 在Debug模式下,指定断点的进入条件
  Space 智能代码提示
Alt+Shift    
     
     
Ctrl+Alt L 格式化代码(选中内容、文件、目录)
  O 优化导入import(文件、目录)
  V 提取为局部变量(或者在末尾.var)
  C 提取为常量1
  F 提取为成员变量
Ctrl+Alt+Shift S 当前项目设置Project Structure(Ctrl+Alt+S打开Settings)

 

目录

零、工具基本设置

一、svn使用

二、编译一个maven项目时的一般设置

三、未识别为maven项目

四、类关系分析

五、idea2020.1

六、引用本地jar包文件

七、JVM相关工具

八、IDEA脱离SVN

九、maven编译

十、配置备份


 

零、工具基本设置

注意:以下设置尽量是从IDEA欢迎页进入的Settings、Structure for New Projects...,这里进入设置,其实并非所谓的全局设置,按照本身的翻译应是"为新的项目设置",因此你每导入或新建一个项目时会遵守这些设置,感觉起来好像是"全局设置"而已

IDEA:问题解决与使用技巧_第1张图片

还有另外一个入口,在欢迎页上进入设置也是为新项目设置

IDEA:问题解决与使用技巧_第2张图片

参考:

IntelliJ IDEA 常用设置

IDEA_2019.2的安装与个人配置(Windows)

1、自动完成忽视大小写

IDEA:问题解决与使用技巧_第3张图片

2、代码检查等级

不建议修改这个配置

一般设置为none,不检查

None: 不设置检查。
Syntax: 可以检查单词拼写,简单语法错误。
Inspections: 为最高等级检查,可以检查单词拼写,语法错误,变量使用,方法之间调用等。

IDEA:问题解决与使用技巧_第4张图片

3、自动导包

看需要是否开启

自动组织包看需要是否开启,开启后,当你注释了一段代码那么它的import也会被清理掉,可能后面又想开启时而又有多个同名类时你就不知道导哪个了。不建议勾上第2个,当注释有用的代码后若要重新启用代码则此时又要导入类

IDEA:问题解决与使用技巧_第5张图片

4、折叠空包

不建议开启空包折叠。而是在实际使用项目时点击左边的瞄准镜去定位当前编辑窗口的文件所在目录

IDEA:问题解决与使用技巧_第6张图片

5、省电模式

不建议开启

会关掉代码的检查、提示等功能

IDEA:问题解决与使用技巧_第7张图片

6、垂直或水平分组、多行Tab

IDEA:问题解决与使用技巧_第8张图片

IDEA:问题解决与使用技巧_第9张图片

7、编译时的堆内存设置

默认=700,建议多少呢?我设置为1000了

IDEA:问题解决与使用技巧_第10张图片

8、启动时不打开最后一次关闭的项目、打开新项目时

IDEA:问题解决与使用技巧_第11张图片

9、关闭IDEA软件更新检查

IDEA:问题解决与使用技巧_第12张图片

10、允许鼠标滚轮调整字体大小

IDEA:问题解决与使用技巧_第13张图片

11、显示行数、方法分隔线

IDEA:问题解决与使用技巧_第14张图片

12、定位文件夹

看需要是否需要开启

IDEA:问题解决与使用技巧_第15张图片

我的做法并不开启这个选项,而是当需要定位这个文件所在文件夹时,手动使用定位按钮

13、项目文件编码

IDEA:问题解决与使用技巧_第16张图片

14、开启serialVersionUID警告

IDEA:问题解决与使用技巧_第17张图片

15、字体

菜单栏字体,大小一般12、13、14即可

IDEA:问题解决与使用技巧_第18张图片

编译器字体:大小一般14、15、16

IDEA:问题解决与使用技巧_第19张图片

控制台字体

IDEA:问题解决与使用技巧_第20张图片

16、项目自动编译

IDEA:问题解决与使用技巧_第21张图片17、配置插件代理连接

看需要是否设置

注意:如果第19步,你在plugins使用没有问题,不会出现打不开的情况,就不需要设置本步了

Settings
    Appearance & Behavior
        System Settings
            HTTP Proxy

选择Auto-detect proxy settings,并勾选:Automatic proxy configuration URL并填写

http://plugins.jetbrains.com/

重启IDEA

18、自定义注释

参考:

IDEA类和方法注释模板设置(非常详细)

Intellij IDEA 自定义方法注释/方法模板

Settings
    Editor
        Live Templates

(1)添加自定义注释模板组:privateGroup

IDEA:问题解决与使用技巧_第22张图片

(2)添加注释模板

IDEA:问题解决与使用技巧_第23张图片

属性注释:使用时,在属性变量上方,addf即可

/**
 *
 */

IDEA:问题解决与使用技巧_第24张图片

类注释:使用时,在类上方addt即可

/**
 * 
 *
 * @date $time$ $date$
 * @author 李文龙
 **/

IDEA:问题解决与使用技巧_第25张图片

IDEA:问题解决与使用技巧_第26张图片

方法注释:必须在方法体中使用才能生效

/**
 * 
 *
 * @date $time$ $date$
 * @param $param$
 * @return $return$
 * @author 李文龙
 **/

IDEA:问题解决与使用技巧_第27张图片

注意:必须要左边的红框都先设置完,再点击Edit variables进行设置变量,否则会异常

IDEA:问题解决与使用技巧_第28张图片

19、编译配置

1)Settings for New Project

指定所用的maven插件(可以是IDEA自带的Bundled版,也可以是电脑本地安装的)

IDEA:问题解决与使用技巧_第29张图片

maven导入设置:Souces、Documentation看是否需要下,如果你不需要看jar包源码就可以不用下,-Xmx值看着给

IDEA:问题解决与使用技巧_第30张图片

IDEA:问题解决与使用技巧_第31张图片

2)Project Structure for New Project

ProjectSDK,默认是没有的,可以在New...里选中电脑本地所装的jdk位置

IDEA:问题解决与使用技巧_第32张图片

SDKs

IDEA:问题解决与使用技巧_第33张图片

20、java代码注释风格

当使用Ctrl+/去注释代码时,"//"就会在代码首字母前而不是行首(由于勾选了Add a space,因此"//"与首字母还会再空一格)

IDEA:问题解决与使用技巧_第34张图片

一、svn使用

注意:最佳实践建议并非在IDEA中使用svn。而是所有svn的操作(检出、更新、提交...)都使用TortoiseSVN等客户端软件,而对IDEA来说,让它和开发本地文件夹中的项目没什么差别。这种实践方式:可以将SVN相关操作集中到Tortoise里管理,而IDEA压根就不知道版本控制的存在,这样也不会影响IDEA的内存、性能等。同样,这种方式下,将无法体验到IDEA中友好的svn操作

当一次性涉及到大量的文件及文件夹(如:几百个)的操作时,如:从其他地方拷贝一个文件夹到项目里,这个文件夹中有几百个文件,这种情况下最好别用IDEA来提交,而是直接在window本地文件系统中使用TortoiseSVN来操作,用IDEA很容易卡在Perform VCS refresh...(卡到你爆炸)

1、配置SVN客户端工具

Settings
    Version Control
        Subversion

选定svn.exe的位置,我安装时按照默认的,所以位置如图所示

IDEA:问题解决与使用技巧_第35张图片

注意:安装TortoiseSVN工具时,一定要勾选安装命令行工具,否则是bin目录下是没有svn.exe的

IDEA:问题解决与使用技巧_第36张图片

2、设置忽略文件

1.为啥要设置忽略文件

在使用IDEA开发、编译、构建项目的过程中,会产生很多临时文件、IDEA相关的配置文件等等,这些文件都与项目本身不相关,不影响项目本身代码编译。但这些文件会疯狂提示你:是否需要将文件添加到版本控制库,导致IDEA卡死,根本动不了哇~~~

.idea实际上也不应该上传到svn,但为了让IDEA在检出项目到本地时能识别它是IDEA项目,因此一般.idea文件夹只是初始化版本库时上传一次,但以后每个开发人员检出到本地后,设置忽略文件不应该再上传.idea里的文件

如果不这样做的话,每次都会有大量的.idea文件上传/下载;但初始化时应该上传一次,否则检出到本地后需要为它创建为idea工程,这个的操作就像:使用IDEA从SVN检出eclipse工程一样的(IDEA识别为工程为idea工程需要项目根路径下有.idea、Xxx.iml文件,而eclipse是看.project文件是否有)

2.设置

IDEA对svn的支持和对git的不一样

Settings
    Editor
        File Types
            右下角:Ignore files and folders

我的值如下:

注意:我设置了target目录也在这里面,这是必要的。但这样的话如何要拷贝maven打包生成的jar、war包文件就得去系统目录中去找了。这也简单,随便选中一个文件鼠标右键,Show in Explorer即可打开本地文件夹了

*.classpath;*.gitignore;*.hprof;*.idea;*.iml;*.project;*.pyc;*.pyo;*.rbc;*.settings;*.sh;*.yarb;*~;.DS_Store;.git;.hg;.mvn;.svn;CVS;__pycache__;_svn;target;vssver.scc;vssver2.scc;

3、从SVN上检出idea项目

注意:在本步骤之前,一定要先设置好忽略文件,否则会卡到你爆炸

1.本地创建项目的父级目录,如:

D:\workspace-IDEA\bank\n200519

这个n200519并非项目根路径,只是为了表示是这一天创建的(个人习惯而已)

项目根路径:比如一个文件夹名为Xxx,其下有以下文件:.idea、src等

IDEA:问题解决与使用技巧_第37张图片

那么这个Xxx所在路径,我就叫它项目根路径,Xxx就叫项目文件夹名。这里面有.idea、.iml文件,说明这个项目本身就是由idea工具创建

2.版本库浏览获取项目路径

鼠标右键
    TortoiseSVN
        版本库浏览器

第1步创建的是项目根路径的父路径,因此这里通过版本库浏览器获取的项目路径,也是项目根路径的父路径,比如版本库中的文件是这样的

.../AAAAAA
    BBBBBB
        .idea
        src
        ...

那么,这步要拿的目标路径应该是:.../AAAAAA

3.检出

IDEA欢迎页
    Get from Version Control

输入第2步拿到的路径

IDEA:问题解决与使用技巧_第38张图片

确定后

IDEA:问题解决与使用技巧_第39张图片

在这里,1就是.../AAAAAA,2就是项目根路径/项目文件夹名,3就是项目的源文件

选中项目文件夹名并Check Out

指定到第1步所创建的文件夹

IDEA:问题解决与使用技巧_第40张图片

选择检出参数

IDEA:问题解决与使用技巧_第41张图片

选择1.8.format,正常情况下,进行到这就会开始从SVN服务器拉取代码到本地了,拉取完后你会发现本地文件目录如下

IDEA:问题解决与使用技巧_第42张图片

这里1就是第1步创建的文件夹,它并非项目文件夹名/项目根路径,其对应的是.../AAAAAA;2才是项目根路径,对应BBBBBB

4、一般svn操作

1.一般提交需要更新一下,我们假设从SVN上获取最新版本来更新本地代码库时不会发生冲突

对要更新的目标文件夹鼠标右键,这里我们选中整个项目的根路径进行更新
    Subversion
        Update Directory...

2.提交

对要提交的目标文件夹鼠标右键,这里我们选中整个项目的根路径进行提交
    Subversion
        Commit Directory...

由于前面设置了忽略文件,因此.idea等临时文件就不会到这个待提交框中

IDEA:问题解决与使用技巧_第43张图片

接下来就是IDEA的一顿分析、检查、确定等过程,笔者在:2019.2版本、2019.2升级到得2019.3版本,这两种情况下IDEA对svn支持太差,所有svn操作里,几乎只有更新是耗时较少的,提交根本就一直卡着,使用2019.2升级到2019.3版本也不行,同时直接使用2019.3是非常快的,后来我使用2020.1版本也是非常快的。

下面是点击commit后一些检查界面:这些检查若选择Review、Cancel就会取消提交

IDEA:问题解决与使用技巧_第44张图片IDEA:问题解决与使用技巧_第45张图片

个人认为不需要这些,因为代码是否有问题应该由开发人员自己负责

3.冲突

冲突的发生时机

多人协作开发时所产生的歧义操作。

假设A、B、SVNServer三者目前代码都是最新的,全都同步一致

当A本地做了修改,B也在本地做了修改,这相当于实际工作时大家各自开发各自的模块
这时A将自己的修改提交到服务器,此时A、SVNServer的代码保持了一致

现在,B也需要提交代码了,他就需要尝试更新SVNServer代码到本地,此时假设大家都是各自改各自的模块、目录文件等,那么就不会发生冲突,B更新后直接提交即可,此时B、SVNServer的代码保持了一致

最后A开始工作前也更新一下代码,此时A、B、SVNServer三者代码又是最新的,并且同步一致

但是,当A、B修改了同一个文件的同一位置并做了不同的修改时,比如:二者都在pom.xml中的末尾添加依赖
那么在B做了自己的修改,准备从SVNServer去更新代码到本地时,IDEA工具就会提示产生了冲突,这个冲突需要
解决后,B所做的修改才能提交

4.要注意的问题

一般如果只是修改文件内容、新建类等操作,直接在IDEA中操作还可以。但如果是从其他地方拷贝文件到项目中时,最好在系统文件夹中操作,再添加到版本控制这样会快一点,同时IDEA中也会更新的。

如果拷贝文件到项目中、添加到版本控制等操作也在IDEA中做时,着实会有点卡

一句话:有些能在系统文件夹中完成的操作就不要在IDEA中去做

删除文件必须在IDEA中进行,删除文件夹时,要先删除其中的子文件、子文件夹(子文件夹中有文件时也先删除它的子文件),如果这些操作是要在系统文件夹中去做,那么IDEA同步信息是需要一定时间的。很可能的情况是,你在本地文件夹中删除一个文件,但是马上在IDEA中提交时,是没有更新信息的

总之:IDEA对于文件内容改动的信息同步其实还挺快的,但对于对文件结构造成影响的操作,如:添加、删除文件、文件夹等,特别是:几百个文件的一次性改动,这时你会发现如果你要做提交等操作时,会一直卡在:Perform VCS refresh...实际就是IDEA去同步文件改动信息实在太慢了,还要进行文件内容的错误校验

一句话:当设计一次性几百个文件的改动时,最好不要用IDEA去提交,否则会卡在Perform VCS refresh...

 

二、编译一个maven项目时的一般设置

1、Settings

1.maven插件设置

指定插件:使用IDEA自带的Maven插件,版本=3.6.1,使用自定义的.settings.xml配置文件,指定本地仓库等

IDEA:问题解决与使用技巧_第46张图片

2.插件导入的设置

IDEA:问题解决与使用技巧_第47张图片

3.默认jdk

IDEA:问题解决与使用技巧_第48张图片

2、Project Structure

IDEA:问题解决与使用技巧_第49张图片

IDEA:问题解决与使用技巧_第50张图片

IDEA:问题解决与使用技巧_第51张图片

3、修改maven/.settings.xml文件,在对应位置添加以下内容


  jdk-1.8
  
    true
    1.8
  
  
    1.8
    1.8
    1.8
  

修改项目的pom.xml,添加


 1.8
  1.8

 

三、未识别为maven项目

1、描述

使用SpringInitializer初始化项目,但打开项目后:pom.xml中的依赖未开始下载;IDEA右边侧栏未看到maven窗口;pom.xml文件图标显示不正常

IDEA:问题解决与使用技巧_第52张图片

2、解决办法

选中pom.xml文件,鼠标右键,"add as maven project"

 

四、类关系分析

1、"树形式"展示

选中类名,Ctrl + H

IDEA:问题解决与使用技巧_第53张图片

2、"图形式"展示

编辑框鼠标右键,Diagrams,Show Diagram...

IDEA:问题解决与使用技巧_第54张图片

具体使用技巧,参考:https://www.cnblogs.com/deng-cc/p/6927447.html

3、技巧

可以将上述方法结合使用,先以树形展示

IDEA:问题解决与使用技巧_第55张图片

再选中所有类(选中第一个,按住Shift,再选中最后一个)

再按图形展示

IDEA:问题解决与使用技巧_第56张图片

再在这个基础上去删除、添加类到这个关系图中

 

五、idea2020.1

一个无法解决的问题让我直接原地爆炸问题,最终我怂了就重新换回2019.3.5

SVN上的项目是2019.2版本创建的,但是检出下来一切都正常,maven打包也正常,但本地启动报错,现象回忆

1.启动报错,报错信息是
    java.lang.NoClassDefFoundError:javax.servlet.ServletOutputStream
2.application.yml无法被识别,里面所设置的属性无法通过Ctrl+鼠标左键进行查看
3.maven install没毛病
4.启动类上有警告:idea application context not configured for this file
......

尝试了各种办法,望懂的大佬告知

六、引用本地jar包文件

注意:如果你的项目是maven型,墙裂不建议你用这样的方法,因为会导致你本地开发调试没问题,但是maven打包却不能将它打到classpath中。参考:IDEA使用Maven项目不能加入本地Jar包的解决方法、maven-3.6.1:问题解决与使用技巧

IDEA:问题解决与使用技巧_第57张图片

然后选中引用你的jar包即可。注意:这是引用,而不是文件复制,因此当文件路径有修改时就会失效,需要重新指定

并且IDEA会给出提示:它指出这个模块是由maven导入的,因此这些配置可能会在重新导入maven项目时丢失

完成这些步骤后,该项目就能依赖上这个jar包了,但是并未被maven管理

七、JVM相关工具

1、插件:HexView

十六进制查看class文件,选中class文件后选择Hex View即可

IDEA:问题解决与使用技巧_第58张图片

2、字节码文件分析

IDEA工具自带的,选中class文件

IDEA:问题解决与使用技巧_第59张图片    

内容

IDEA:问题解决与使用技巧_第60张图片

3、插件:jclasslib

IDEA:问题解决与使用技巧_第61张图片

结果

IDEA:问题解决与使用技巧_第62张图片

八、IDEA脱离SVN

需求:我们希望与SVN相关的操作都直接使用TortoiseSVN、SyncroSVN等客户端操作,而开发编辑时只使用IDEA操作,在IDEA看来和普通的本地项目工程相同

好处:开发操作(编辑、编译、运行等)与SVN相关操作(更新、还原、提交等)相分离,和IDEA开发本地工程没什么两样。这样就不会在目录中把文件标识绿色、蓝色、红色等分别表示SVN文件状态(新增、修改、未受版本控制等);同时添加文件不会再有"是否要将新增的文件加入版本控制";并且,在重命名、删除、新增等操作时,IDEA就不会进行SVN检查,不会很卡(如果你在IDEA里使用SVN,一次性添加很多文件时IDEA会完全卡的原地爆炸)

坏处:一些SVN的操作,SVN客户端软件虽然也能完成,但是并没有IDEA做的那么人性化。比如说:当文件发生冲突时,IDEA会让你选择"选用自己本地的,放弃从服务器拉下来的别人的"(或者反过来)来解决冲突。而SVN客户端工具可能没这么好解决

使用SVN客户端检出代码到本地后,使用IDEA打开后默认会对项目启用SVN,这时需要做2个设置:

(1)不使用本地的svn.exe

只要不设置为正确的svn.exe位置即可

IDEA:问题解决与使用技巧_第63张图片

(2)删掉对项目的svn设置

如果黄框中有配置svn则使用"减号"删除即可

IDEA:问题解决与使用技巧_第64张图片

题外话:在这种分开使用方式下,提交、更新等操作时,需要进入到项目根目录里选中文件/文件夹进行操作,而不是在项目根目录名上去操作。原因:IDEA会在项目根目录下生成.idea目录,这是IDEA工程设置文件,一般在第一次上传项目代码时上传一次,或者不上传(这样的话会导致检出代码到本地后,使用IDEA打开它时需要建立项目)。不同的开发人员拉取项目到本地使用IDEA开发后,必定会修改.idea文件夹中的内容,因此如果.idea也使用SVN更新时,必定会发生冲突。(如果真的发生冲突,将.idea文件夹删除,再重新获取一份下来,重新打开项目即可)

九、maven编译

IDEA:问题解决与使用技巧_第65张图片

不再支持源选项5,请使用6或更高版本

解决办法:在pom.xml中指定jdk的版本即可

十、配置备份

尚未尝试

 

你可能感兴趣的:(工具)