jetbrains 从 2021.2.3 版本开始需要用户登录之后才能使用,2021.2.2 版本以及之前的版本不用登录
## 安装破解
1. 下载IDEA20210202 Ultimate 版本并安装
[IDEA官网下载地址](https://www.jetbrains.com/idea/download/other.html)
2. 打开IDEA,选择 Evaluate for free,点击 Evaluate
3. 之后安装插件 ide-eval-resetter,它会自动无限重置免费试用期限。
链接:https://pan.baidu.com/s/1Ro41Iwc7vKIlpOCmIs5haw?pwd=oe7o
提取码:oe7o
## 导出导入配置
![image-20210821163628811](imgs/image-20210821163628811.png)
## 必备插件
插件可在IDEA官网搜索 https://plugins.jetbrains.com/
* [Lombok](https://github.com/mplushnikov/lombok-intellij-plugin)
* 支持lombok的各种注解,从此不用写getter setter
> idea2020.3之后,idea已经内置了lombok的功能
* **Free MyBatis plugin:**free-idea-mybatis 是一款增强idea对mybatis支持的插件,主要功能如下:
- 生成mapper xml文件
- 快速从代码跳转到mapper及从mapper返回代码
- mybatis自动补全及语法错误提示
- 集成mybatis generator gui界面
* [MyBatis Log Plugin](https://plugins.jetbrains.com/plugin/10065-mybatis-log-plugin)
* 把 mybatis 输出的sql日志还原成完整的sql语句。
* 将日志输出的sql语句中的问号 ? 替换成真正的参数值。
* 通过 "Tools -> MyBatis Log Plugin" 菜单或快捷键 "Ctrl+Shift+Alt+O" 启用。
* 点击窗口左边的 "Filter" 按钮,可以过滤不想要输出的sql语句。
* 点击窗口左边的 "Format Sql" 按钮,可以格式化输出的sql语句。
* 选中console的sql日志,右击 "Restore Sql from Selection" 菜单可以还原sql语句。
前提条件:输出的sql日志必须包含"Preparing:"和"Parameters:"才能正常解析。
* **Alibaba Java Coding Guidelines:**
* 一款阿里巴巴公司试行的开发设计规范~,规范参考《阿里巴巴Java开发手册》
* **RestfulToolkit**:一套 RESTful 服务开发辅助工具集
1. 根据 URL 直接跳转到对应的方法定义,按 Ctrl+\ 或者 Ctrl+Alt+N
2. 提供了一个 Services tree 的显示窗口;
3. 一个简单的 http 请求工具;
4. 在请求方法上添加了有用功能: *复制生成 URL*;,*复制方法参数*...
5. 其他功能: java 类上添加 *Convert to JSON* 功能,*格式化 json 数据* ( *Windows: Ctrl + Enter; Mac: Command + Enter* )。
* **SonarLint**:是一个代码质量检测插件,可以帮助我们检测出代码中的**坏味道**
* **关闭SonarLint的自动扫描:**File -> Settings -> Other Settings 的 SonarLint General Settings 中,勾掉 Automatically trigger analysis
* **关闭4.6版本SonarLint的自动扫描**:File -> Settings -> Tools -> SonarLint ,勾掉 Automatically trigger analysis
* **SequenceDiagram** 生成时序图
* 根据代码生成时序图
- 通过生成的时序图导航到代码
- 从时序图中删除某个类(不影响实际代码)
- 将时序图导出为图像或 PlantUML 文件
* [.ignore](https://github.com/JetBrains/idea-gitignore)
各类版本控制忽略文件生成工具
* Rainbow Brackets:对各个对称括号进行着色,方便查看
* **GenerateAllSetter**
* 一键调用一个对象的所有的set方法
* **CheckStyle-IDEA**
* 检测无用导入、没写注释、语法错误、方法太长等等代码规范
* GsonFormat
* JSON 转为bean
### 在线安装
File -> Settings -> Plugins 的 marketplace 直接搜索插件名称
![IDEA插件在线安装](./imgs/idea插件在线安装.png)
### 离线安装
1. 在 [IDEA 官网搜索插件](https://plugins.jetbrains.com/)
![image-20201019163504966](imgs/image-20201019163504966.png)
2. 在 Versions 中选择适合的版本下载
![image-20201019165512107](./imgs/image-20201019165512107.png)
3. IDEA离线安装插件
![IDEA离线安装插件](imgs/image-20201019165421519.png)
### 使用说明
#### SonarLint
>参考:
>* https://www.cnblogs.com/it-deepinmind/p/13049913.html
1. **Method has 15 parameters, which is greater than 7 authorized.**
方法里有15个参数,最好不要超过7个
2. **Use static access with "com.alibaba.fastjson.JSON" for "parseObject".**
父类的静态成员不应该使用子类访问
:使用 com.alibaba.fastjson.JSON 访问静态方法 parseObject
```java
JSONObject.parsetObject(jsonStr);
```
原因:parseObject 是 JSONObject 父类 JSON 的静态方法
3. **Refactor this method to reduce its Cognitive Complexity from 22 to the 15 allowed.**
方法复杂度太高了
:重构该方法,降低它的复杂度,从22降低到建议的15
4. **Define a constant instead of duplicating this literal "total" 3 times.**
重复的字符串要定义常量
:定义一个常量,替换重复的字面值 total
5. **Rename this local variable to match the regular expression '^\[a-z\]\[a-zA-Z0-9\]*$'**
局部变量应该遵守命名规则。
```java
//错误例子
int a_b = 15;
```
6. **Define and throw a dedicated excepiotn instead of using a generic one**
使用自定义异常替换一般异常
```java
//错误例子
throw new RuntimeException("参数错误");
//正确例子
throw new ParameterException("参数错误");
```