开心一刻

  建筑行业内,我看过的最凶残笑话(IT行业内好一致!)

  上联:一天晚上两个甲方三更半夜四处催图只好周五加班到周六早上七点画好八点传完九点上床睡觉十分痛苦

  下联:十点才过九分甲方八个短信七个电话居然要六处调整加五张图纸四小时交三个文本两天周末只睡一个小时

  横批:用原来的

内心的独白

写作背景

  2017 从 eclipse 换到 IDEA,适应了一段时间,后面一直用 IDEA 2018 版,使用期间偶尔出现一些小问题,但不多,没太注意

  最近换了电脑,开发环境得重新搭,顺便把 IDEA 更新下。本来打算用 2020 版的,可网上对 2020 版的评论一致比较差,所以我就放弃做勇士了,用的是 2019.3.5 版本

  切了版本后,使用期间陆陆续续暴露了不少问题,有些问题还花了不少时间来处理,期间甚至有了放弃 IDEA,重新投抱 Eclipse 的想法,但是后面冷静一想,Eclipse 几年没用,都忘完了,重新捡起来的成本可能更高,所以痛定思痛,决定将 IDEA 的这些比较常用的设置全部整理一下,方便以后自己查阅,也方便遇到同样问题的小伙伴进行问题排查与处理

  需要大家注意是,楼主用的是 IDEA 2019.3.5 版本,可能和大家的版本不同,版本不同,配置项会有细微的区别,大家不要完全一致的去对比

全局设置与当前设置

  其实 IDEA 安装完成的时候就提示我们进行全局设置,但是往往被我们忽略了

  当我们打开工程后,往往设置的是当前工程的设置,而不是全局设置,所以当我们用新窗口打开新的工程时,发现新窗口的设置都是默认的,而不是我们之前设置的,这就有点不爽了

  那如果我们在 IDEA 安装的时候没有进行全局设置,还能进行全局设置吗? 答案是肯定的,可以在 IDEA 窗口进行当前设置和全局设置,如下图

  

  Settings 表示的是当前设置,Other Settings 表示的是全局设置;不同的 IDEA 版本,Other Settings 代表的都是全局设置(未来不一定,但是历史是这样),只是 Other Settings 下内容可能会有所不同

  如果既进行了 Settings 设置,又设置了 Other Setting, 那么当前工程生效的是 Settings 中的设置

  后续讲到的一些设置若非特殊说明都是在全局设置下进行,主要是为了强调下全局设置的重要性(可能只是楼主后知后觉,汗...)

必定修改

  Project SDK

    配置成我们安装的 JDK,目前用的比较多的是 1.8 版本; 配置如下

    

  项目文件编码

    工程编码我需要统一,基本统一成 UTF-8,设置如下

    

    都选择 UTF-8

    如果不选择 UTF-8,可能会编译不报错,但是启动时却报错:Error:(15,31) java: 找不到符号

  自动编译

    默认情况下,自动编译是关闭的,我们可以按下图进行开启

    

    将复选框勾上则开启自动编译,但后面有说明:非 running 或 debugging 时才生效

  智能导包

    效果就是,当我们输入 List,能够自动导入 java.util.List ,设置如下

    

    两个复选框都需要勾上

  行号显示

    显示代码行号,配合日志能快速地定位到出问题的代码,设置如下(这个只能在 Settings 中进行设置)

    

    需要将复选框勾上;勾选上之后,每一行代码前就会有行号显示,如下所示

    

  制表符设置

    主要时考虑到不同的编辑器对 Tab 的处理不同,所以统一成 4 个空格来处理

    

    复选框不要勾

  maven 设置

    IDEA 自带 maven,但往往需要修改成我们自己的 maven,我们的 maven 有很多自定义的配置,如私有仓库等

    配置如下

    

    标记的地方替换成我们自己的 maven, 至于 Local repository,会自动加载 maven settings.xml 中的仓库地址,一般不用覆盖修改

  构建/运行操作委托给 maven

    默认情况下对项目的构建和运行是 IDEA 自己负责的,这样就可能导致构建和运行时无法找到 maven 仓库中的相关 jar 包,从而出现:Error:(6, 34) java: 程序包xxx不存在 的错误

    进行如下配置,将构建/运行操作委托给 maven,这样依赖的 jar 包都能正确找到

    

    复选框勾上即可

推荐修改

  多行显示文件 Tab

    默认情况下多行 Tab 是单行显示的,效果如下

    

    所有打开的文件 Tab 显示在一行,显示不下的收缩起来(越久未被操作的文件越容易被收缩);文件多了收缩起来,还是不太方便文件的切换操作,推荐多行显示,配置如下(只能在 Settings 下设置)

    

    复选框不要勾上,设置了后效果如下

    

    这样文件切换起来更方便

  取消 import xxx.*

    当我们 Java 类中导入的某个包下类超过指定个数,就会换成用 * 号来代替,例如:import java.utils.*;

    * 代表的是导入包下所有类,不够直观,也没必要,需要什么就导入什么是最好的

    

    Class count to use import with '*' 表示的是:导入了同个包下多少的类,就将这些导入替换成 *, 默认是 5

    Names count to use static import with '*' 则表示的是:静态导入了同个类中多少的静态常量,就将这些导入替换成 *, 默认是 3

    我们将这两个值配置大一些,那么就不会 import * 了

  类注释模板

    阿里规约中有这么一条,类必须加注释,并且必须要有 author

    类注释还是很有必要的,可以追溯到人,便于业务的沟通

    配置如下

    

    想加什么参数就加什么;设置好后,我们新建一个类,就会自动带上注释,如下所示

    

可能修改

  maven Ignored files

    Settings 下有这么个设置

    

    理论上来讲,这个列表中的复选框都不能勾选(默认也都不会勾选),如果勾选了,那么就被勾选了的 pom.xml 对应的工程就不会被当作 maven 工程,后果可想而知:不是 maven 工程就会有依赖找不到的问题,项目就会启动失败

    楼主不知道怎么回事就勾上了其中一个,出现如下症状

    

    maven 工具窗口下该 maven 工程显示成了灰色,特别与众不同;然后启动该工程的时候,提示各种依赖都找不到,真是毙了狗

  Method Breakpoints

    正常情况来说,我们是不会直接在方法名上打断点的,断点往往是打在方法体上的某一行上,但是楼主不知道怎么回事就打了,导致以 debug 方式启动不了工程,并提示:Method breakpoints may dramatically slow down debugging

    打开 Breakpoints 面板看看(快捷键:Ctrl+Shift+F8 )

    

    一个断点打在了 UserService 接口中的方法上,一个接口打在了实现类 UserServiceImpl 的方法名上

    一般而言不会出现这种情况,就怕大家像楼主一样不小心,在方法名上打了断点,并导致项目 debug 不起来,知道如何处理就好

    逐个选中,remove 就好,如下图所示

    

总结

  1、遇到问题,不能立马想到去怎么处理的,尽快利用网络去查,千万不要一头扎进自我认为中去,太费时了,最后还得求助于网络

    网络搜索的话,关键字非常重要,描述的越清楚,命中率越高;如果确实不好描述,那就多换关键字去查

  2、有些配置是需要勾选复选框,有些是不能勾选,大家要看清楚了

  3、文中的 IDEA 配置修改分了三种:必须、推荐、可能,只囊括了一部分,有些未考虑到的欢迎大家补充

    可能级别中的问题基本都是误操作,大家留个印象就好,万一碰到了知道怎么处理

  4、要学会多总结,包括各个方面的总结,这样我们才能越来越强大!

IDEA 非常重要的一些设置项 → 一连串的问题差点让我重新用回 Eclipse !的更多相关文章

  1. .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)

    阅读目录: 1.需求背景介绍(Model元数据设置项应该与View绑定而非ViewModel) 1.1.确定问题域范围(可以使用DSL管理问题域前提是锁定领域模型) 2.迁移ViewModel设置到外 ...

  2. 支持Cookie并开放了一些特殊设置项的HttpWebClient

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...

  3. 迁移Model元数据设置项

    .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序) 阅读目录: 1.需求背景介绍(Model元数据设置项应该与View绑定而非ViewModel) 1 ...

  4. ios系统中各种设置项的url链接

    ios系统中各种设置项的url链接 在代码中调用如下代码:NSURL*url=[NSURL URLWithString:@"prefs:root=WIFI"];[[UIApplic ...

  5. 隐藏Windows不常用设置项

    Windows10的设置里面有很多我们不想看见的项目,例如"轻松使用","隐私","游戏","Cortana"等,我们可 ...

  6. 修改tomcat小猫图标,设置项目的favicon图标

    修改tomcat小猫图标,设置项目的favicon图标,方式有两种:全局方式和局部方式 1.全局方式: 进入tomcat服务器\webapps\ROOT,然后用自己项目的favicon.ico替换to ...

  7. pycharm常用设置项和快捷键

    python开发工具pycharm非常人性化,使用方便,功能强大,可以做到与项目配置库结合使用.初次使用,一些设置项和快捷键不那么容易被发现和设置,那么给大家下面总结pycharm常用的设置项和快捷键 ...

  8. 控制面板中java设置项如何删除

    卸载jdk或者jre后,如果控制面板中仍然有java项,重新安装可能仍然无法设置,提示找不到"javacpl.exe" 解决办法:删除C:\windows\system32\下的j ...

  9. .NET项目开发的几个非常重要的项目设置

    在开发.NET项目的时候,包括Winform项目和Web方面的项目,编译和部署的时候,都需要考虑到是32位的X86方式,还是64位的方式,有时候还需要进行调试,如果没有合理设置好这些关系,还可能出现无 ...

随机推荐

  1. Ubuntu14.04 安装VMware tools

    Ubuntu14.04 安装VMware tools 方法一: 1. 在VMware 11(个人的测试环境为vm 11版本)下安装Ubuntu镜像:ubuntu-14.04.1-desktop-amd ...

  2. 集训作业 洛谷P1032 字串变换

    集训的题目有点多,先写困难的绿题吧(简单的应该想想就会了) 嗯,这个题看起来像个搜索呢(就是个搜索) 我们仔细想想就知道这个题肯定不能用深搜,可以优化的地方太少了,TLE是必然的. 那我们该怎么办呢? ...

  3. 搭建高可用kubernetes集群(keepalived+haproxy)

    序 由于单master节点的kubernetes集群,存在master节点异常之后无法继续使用的缺陷.本文参考网管流程搭建一套多master节点负载均衡的kubernetes集群.官网给出了两种拓扑结 ...

  4. Python协程之Gevent模块

    背景 进程是操作系统分配资源的最小单位,每个进程独享4G的内存地址空间,因此进程内数据是安全的,检查间的通信需要使用特定的方法.同理,正是因为进程是数据安全的,所以导致进程的切换是一个很麻烦效率不高的 ...

  5. Win7安装Python失败 提示Setup failed

    一.安装报错 如图所示,双击Python安装包后进行安装显示Setup failed 安装失败: 二.错误排除 1.首先查看自己的计算机是否已经安装了 Win7 Service Pack 1大补丁,没 ...

  6. 常用CSS颜色表

    1.16进制的CSS颜色代码 > http://www.jsjtt.com/webkaifa/HTML/65.html

  7. vue学习(十五) 过滤器简单实用

    vue过滤器: 概念:vue.js允许你自定义过滤器可被用作一些常见文本的格式化.过滤器可以用在两个地方:插值表达式   v-bind表达式  由管道符指示 //过滤器调用时候的格式 {{ name ...

  8. 面试题二十二:链表中倒数第k个节点

    方法一:双指针法定义两个指针A.B,A先走k-1步后再一起走,直到A.next==null注意: 1.链表为空 2.链表长度小于k 3.k<=0 当题目是求链表的中间节点时,可以两个指针从开头开 ...

  9. 基于MySql主从分离的代码层实现

    前言   该文是基于上篇<MySQL主从分离的实现>的代码层实现,所以本文配置的主数据库和从数据库的数据源都是在上篇博文中已经介绍了的. 动态选择数据源的配置   由于我们在写数据的时候需 ...

  10. The Google File System(论文阅读笔记)

    概述 ​ GFS:一个可扩展的分布式文件系统,用于大型分布式数据相关应用,TB级的数据,成千上万的并发请求. 设计概览 假设 组件的失效比异常更加常见 多数的文件修改操作是追加数据而不是重写原来的数据 ...