idea 插件的使用 进阶篇(个人收集使用中的)

idea 插件的使用 进阶篇(个人收集使用中的) 
恭喜你,如果你已经看到这篇文章,证明在idear使用上已经初有小成!那么就要向着大神进发了! 
下边就是大神之路! 
插件的设置 
在 IntelliJ IDEA 的安装讲解中我们其实已经知道,IntelliJ IDEA 本身很多功能也都是通过插件的方式来实现的,只是 IntelliJ IDEA 本身就是它自己的插件平台最大的开发者而已,开发了很多优秀的插件。 
? 官网插件库:https://plugins.jetbrains.com/ 

? 如上图标注 1 所示,IntelliJ IDEA 对插件进行了很好的分类: 
? All plugins 显示所有插件。 
? Enabled 显示当前所有已经启用的插件。 
? Disabled 显示当期那所有已经禁用的插件。 
? Bundled 显示所有 IntelliJ IDEA 自带的插件。 
? Custom 显示所有我们自行安装的插件,如果你自己装了很多次插件的话,这个选项会用得比较多。 
? 如上图标注 2 所示,启用的插件是被勾选的,如果要禁用一个插件,去掉勾选即可。 
? 如上图标注 3 所示,弹出 IntelliJ IDEA 公司自行开发的插件仓库列表,供下载安装。 
? 如上图标注 4 所示,弹出插件仓库中所有插件列表供下载安装。 
? 如上图标注 5 所示,浏览本地的插件文件进行安装,而不是从服务器上下载并安装。 
? 需要严重注意的是:在国内的网络下,很经常出现显示不了插件列表,或是显示了插件列表,无法下载完成安装。这时候请自行开VPN,一般都可以得到解决。



? 如上图红圈所示,如果 IntelliJ IDEA 打开一个它可以识别并且支持的文件类型,它会提示你它有对应的插件进行支持,你可以安装对应的插件来加以兼容此类文件。 
插件的安装 

? 如上图 Gif 演示,在线安装 IntelliJ IDEA 插件库中的插件。 

? 如上图 Gif 演示,离线安装本地插件文件。 
插件名称 插件介绍 官网地址 
Key promoter 快捷键提示 https://plugins.jetbrains.com/plugin/4455?pr=idea

CamelCase 驼峰式命名和下划线命名交替变化 https://plugins.jetbrains.com/plugin/7160?pr=idea

CheckStyle-IDEA 代码规范检查 https://plugins.jetbrains.com/plugin/1065?pr=idea

FindBugs-IDEA 潜在 Bug 检查 https://plugins.jetbrains.com/plugin/3847?pr=idea

MetricsReloaded 代码复杂度检查 https://plugins.jetbrains.com/plugin/93?pr=idea

Statistic 代码统计 https://plugins.jetbrains.com/plugin/4509?pr=idea

JRebel Plugin 热部署 https://plugins.jetbrains.com/plugin/?id=4441

CodeGlance 在编辑代码最右侧,显示一块代码小地图 https://plugins.jetbrains.com/plugin/7275?pr=idea

GsonFormat 把 JSON 字符串直接实例化成类 https://plugins.jetbrains.com/plugin/7654?pr=idea

Eclipse Code Formatter 使用 Eclipse 的代码格式化风格,在一个团队中如果公司有规定格式化风格,这个可以使用。 https://plugins.jetbrains.com/plugin/6546?pr=idea

Ace Jump AceJump其实是一款能够代替鼠标的软件,只要安装了这款插件,可以在代码中跳转到任意位置。按快捷键进入 AceJump 模式后(默认是 Ctrl+J),再按任一个字符,插件就会在屏幕中这个字符的所有出现位置都打上标签,你只要再按一下标签的字符,就能把光标移到该位置上。换言之,你要 移动光标时,眼睛一直看着目标位置就行了,根本不用管光标的当前位置。 
lombok 如果你在用 Lombok,就得装个这个插件啦,省掉一堆 getter、setter,有关 Lombok 的详细介绍参考 使用 Lombok 来缩减 Java 代码 
LiveEdit Intellij IDEA 默认自动保存的,根本不用 Ctrl+s, 
LiveEdit 能自动更新浏览器里的网页,所以F5也省了

如果是是双屏的话,基本上所见即所得了 
IdeaJad 反编译工具 
GenerateToString 
JUnitGenerator 
WebServicePlugin 
JarTool 
GenerateSerialVersionUID 
FindBugs FindBugs 通过检查类文件或 JAR 文件,将字节码与一组缺陷模式进行对比从而发现代码缺陷,完成静态代码分析,可以找出常见的 bug 或者可能潜在 bug 的地方。 
Jrebel 热部署神器,改完代码直接生效,不用重启啦! 
具体参考 利用Jrebel热部署提升工作效率 
可以切换变量命名风格,如 SogouInc、sogouInc、sogou—inc、SOGOU_INC

一、与JIRA集成 
jira是一个广泛使用的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。idea可以很好的跟它集成,参考下图: 
File -> Settings ->Task -> Servers 点击右侧上面的+号,选择JIRA,然后输入JIRA的Server地址,用户名、密码即可 

然后打开Open Task界面 
 
如果JIRA中有分配给你的Task,idea能自动列出来 
 
代码修改后,向svn提交时,会自动与该任务关联 

将每次提交的代码修改与JIRA上的TASK关联后,有什么好处呢? 我们每天可能要写很多代码,修复若干bug,日子久了以后,谁也不记得当初为了修复某个bug做了哪些修改,不要紧张,只要你按上面的操作正确提交,idea都会帮你记着这些细节 
 
如上图,选择最近提交的TASK列表,选择Switch to,idea就会自动打开该TASK关联的源代码,并定位到修改过的代码行。当然如果该TASK已经Close了,也可以选择Remove将其清空。

二、UML类图插件 
idea已经集成了该功能,只是默认没打开,仍然打开Settings界面,定位到Plugins,输入UML,参考下图: 

确认UML 这个勾已经勾上了,然后点击Apply,重启idea,然后仍然找一个java类文件,右击Diagram 

然后,就自个儿爽去吧 

三、SSH集成 
java项目经常会在Linux上部署,每次要切换到SecureCRT这类终端工具未免太麻烦,idea也想到了这一点: 
 
然后填入IP、用户名、密码啥的 
 
点击OK,就能连接上linux了 

注:如果有中文乱码问题,可以在Settings里调整编码为utf-8 

四、集成FTP 
 
点击上图中的…,添加一个Remote Host 

填写ftp的IP、用户名、密码,根路径啥的,然后点击Test FTP Connection,正常的话,应该能连接,如果连接不通,点击Advanced Options,参考下图调整下连接选项 
 
配置了FTP连接后,在提交代码时,可以选择提交完成后将代码自动上传到ftp服务器 

五、Database管理工具 
先看效果吧: 

有了这个,再也不羡慕vs.NET的db管理功能了。配置也很简单,就是点击+号,增加一个Data Source即可 

唯一要注意的是,intellij idea不带数据库驱动,所以在上图中,要手动指定db driver的jar包路径。

六、CheckStyle-IDEA 
通过检查对代码编码格式,命名约定,Javadoc,类设计等方面进行代码规范和风格的检查,从而有效约束开发人员更好地遵循代码编写规范。 
软件安装成功之后,首先要设置规则。可以通过 
Preferences—>Other Settings —>CheckStyles 
进行设置,可以直接将文件添加进来,然后就可以对具体的文件进行检查了。 

同样,该插件也有个单独的视图,该视图可以展示检查结果。 
 
配置checkstyle 
File->Setting->Other Setting->checkStyle至下图界面 
 
点击红框选中的绿色加号至上层页面添加自定义的检查规则,选择附件中的my_checks.xml,Next,Finish后至下图。

 
选中新添加的检查规则,并Apply即可。 
使用checkStyle检查文件 
在File->Setting->Editor->CheckStyle中选择是否进行实时检查。 

(1) 实时检查,实时地对不规范的书写进行提示 ,并在编辑页面中进行颜色标识。 
(2) 取消实时检查后,可在打开的文件中右击选择Check Current File对当前页面进行检查,此时可在下图所示的CheckStyle Scan 中查看不规范内容,点击条目可查看对应出错语句。 
 
其他 
如有一些必须的但不符合检查规则的地方需要忽略检查可以按照下述进行注释 
// CSOFF: MagicNumber 
需要忽略的代码段 
// CSON: MagicNumber 
其中MagicNumber为检查的一个步骤,表示检查魔法数,可以替换成其他的检查步骤,比如要忽略该段的行长度,可将MagicNumber改为LineLength即可。

七、lombok 注解:

lombok 提供的注解不多,可以参考官方视频的讲解和官方文档。
Lombok 注解在线帮助文档:http://projectlombok.org/features/index.
下面介绍几个我常用的 lombok 注解:
    @Data   :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
    @Setter:注解在属性上;为属性提供 setting 方法
    @Getter:注解在属性上;为属性提供 getting 方法
    @Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
    @NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
    @AllArgsConstructor:注解在类上;为类提供一个全参的构造方法

@EqualsAndHashCode:实现equals()方法和hashCode()方法 
@ToString:实现toString()方法 
@Cleanup:关闭流 
@Synchronized:对象同步 
@SneakyThrows:抛出异常

下面是简单示例 
1.不使用 lombok 的方案 

2 public class Person { 

4 private String id; 
5 private String name; 
6 private String identity; 
7 private Logger log = Logger.getLogger(Person.class); 

9 public Person() { 
10 
11 } 
12 
13 public Person(String id, String name, String identity) { 
14 this.id = id; 
15 this.name = name; 
16 this.identity = identity; 
17 } 
18 
19 public String getId() { 
20 return id; 
21 } 
22 
23 public String getName() { 
24 return name; 
25 } 
26 
27 public String getIdentity() { 
28 return identity; 
29 } 
30 
31 public void setId(String id) { 
32 this.id = id; 
33 } 
34 
35 public void setName(String name) { 
36 this.name = name; 
37 } 
38 
39 public void setIdentity(String identity) { 
40 this.identity = identity; 
41 } 
42 } 
43

2.使用 lombok 的方案


2 @Data 
3 @Log4j 
4 @NoArgsConstructor 
5 @AllArgsConstructor 
6 public class Person { 

8 private String id; 
9 private String name; 
10 private String identity; 
11 
12 } 
13

上面的两个 java 类,从作用上来看,它们的效果是一样的,相比较之下,很明显,使用 lombok 要简洁许多,特别是在类的属性较多的情况下, 
同时也避免了修改字段名字时候忘记修改方法名所犯的低级错误。最后需要注意的是,在使用 lombok 注解的时候记得要导入 lombok.jar 包到工程

时间: 2024-10-10 20:18:41

idea 插件的使用 进阶篇(个人收集使用中的)的相关文章

从零开始学Sketch——进阶篇

本文转自 http://www.jianshu.com/p/ff70b5f35c8f 从零开始学Sketch——进阶篇 Sketch是一款矢量绘图应用,而矢量绘图无疑是目前进行网页.图标以及界面设计的最好方式. 在初识了Sketch的界面布局和基础工具之后,我们就可以开始进入高阶的Sketch工具篇学习了.这篇文章主要会涉及Sketch模板.插件的使用,以及Sketch在具体使用过程中的一些技巧分享. 如果你曾接触过PS.AI.Axure等软件,那么接下来的内容你应该不会陌生,因为所有的设计软件

从零开始学Sketch——进阶篇-b

从零开始学Sketch——进阶篇 Sketch是一款矢量绘图应用,而矢量绘图无疑是目前进行网页.图标以及界面设计的最好方式. 在初识了Sketch的界面布局和基础工具之后,我们就可以开始进入高阶的Sketch工具篇学习了.这篇文章主要会涉及Sketch模板.插件的使用,以及Sketch在具体使用过程中的一些技巧分享. 如果你曾接触过PS.AI.Axure等软件,那么接下来的内容你应该不会陌生,因为所有的设计软件学习的路径都是相似的,都是从认识基本功能框架到外部资源整合运用,最终形成个人风格的一个

数据仓库----Hive进阶篇 一

数据仓库--hive进阶篇二 一.数据的导入 1.使用Load语句执行数据的导入 1.语法: 其中(中括号中表示可加指令): LOCAL:表示指定的文件路径是否是本地的,没有则说明是HDFS上的文件路径. OVERWRITE:表示覆盖表中的已有数据. PARTITION ():如果是向分区表中导入数据的话需要指定分区. 2.实例: (1).无分区情况: 其中的'/root/data'可以是路径也可以是文件: 路径表示把该路径下的所有文件都导入到表中: 文件表示只把当前文件导入到表中. (2).有

python进阶篇

python进阶篇 import 导入模块 sys.path:获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到. ? import sys ? sys.path.append("") 重新导入模块 ? reload(模块) ==.is a = [11,22,33] b = [11,22,33] >>>a == b True >>>a is b False >>>a = c

DotNet进阶篇

一. 回顾历史 回顾个人发展历程,自2012年初次接触开发至今(2018年)已经有五六个年头,这期间陆陆续续学习并掌握了不少技术,C#语言.ORM框架.多线程技术.设计模式.前端技术.MVC.MVVM框架思想等等,每种技术随着多次使用,随着不断的反思,逐渐经历 "了解→理解→掌握→精通 "这么一个过程,从最初的只能实现功能到如今的"每一步都考虑性能优化问题",在近两年内,开始写博客,最初只是一时兴起,想让百度上能搜索出我的文章,但现在已经形成一个习惯,在没有特殊事情

《手把手教你》系列进阶篇之2-python+ selenium自动化测试 - python基础扫盲(详细教程)

1. 简介 这篇文章主要是分享讲解一下,如何封装自己用到的方法和类.以便方便自己和别人的调用,这样就可以避免重复地再造轮子. 封装(Encapsulation)是面向对象的三大特征之一(另外两个是继承和多态),它指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问. 就好比使用计算机,我们只需要使用计算机提供的键盘,就可以达到操作计算机的目的,至于在敲击键盘时计算机内部是如何工作,我们根本不需要知道. 封装机制保证了类内部

springcloud-zuul进阶篇

一 前言 经过zuul初级篇(博客或者公主号springcloud专栏可以找到)的学习,读者都懂得如何简单的使用zuul进行路由网关配置,在进阶篇中你将获得zuul核心功能过滤器的基本使用,通过zuul实现文件上传等: 二管理端点 默认情况下使用@EnableZuulProxy注解和 Spring Boot Actuator集成方式会有两个端点 Routes 和 Filters: 2.1 zuul-server 在zuul-server中添加依赖actuator <dependency> &l

form表单那点事儿(下) 进阶篇

上一篇主要温习了一下form表单的属性和表单元素,这一片主要讲解用JavaScript如何操作form. 表单操作 取值 用JavaScript操作表单,免不了会有取值赋值操作,比如有以下表单: <form id='form0'></form> <form action="/login" method="post" target="blank" id='form1'> <input type="

Python之路【第十七篇】:Django【进阶篇 】

Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 import MySQLdb def GetList(sql): db = MySQLdb.connect(user='root', db='wupeiqidb', passwd='1234', host='localhost')