IntelliJ IDEA常见问题解决办法汇总

 idea配置代码模板的地方【只用配置includes即可,不用配置Files tab下的内容】:

 



 

 reformat时,import记录的转换。

 

 

idea在单元测试中设置JVM参数
运行一次测试用例,然后在工具栏中点 Run/Debug旁边的向下的小箭头:

选择Edit Configuration…


可以看到 VM Options 参数设置,并且可以指定具体的方法


一定保存Apply,不然不会生效:


 

市场插件

  • 阿里代码规约检测

  • 快捷键提示工具:Key promoter X

  • 代码注解插件: Lombok

  • 代码生成工具:CodeMaker

  • 单元测试测试生成工具:JUnitGenerator

  • Mybatis 工具:Free Mybatis plugin 【可让Mapper.java文件 关联到 mapper.xml中的方法】

  • Maven辅助神器:Maven Helper

  • JSON转领域对象工具:GsonFormat

  • 领域对象转JSON工具:POJO to JSON

  • 时序图生成工具:SequenceDiagram

  • 字符串工具:String Manipulation

  • 代码作色工具:Rainbow Brackets

  • RESTful 服务开发辅助工具集: RestfulToolkit

  • 日志工具:Grep Console

  • 生成对象set方法:GenerateAllSetter

  • Redis可视化:Iedis

  • K8s工具:Kubernetes

  • 中英文翻译工具:Translation

https://mp.weixin.qq.com/s/xNSES7n_oMU4I4rwftQHiA
IDEA插件介绍(一) -RestfulToolkit(接口自测工具)

1:官网
http://plugins.jetbrains.com/plugin/10292-restfultoolkit

2:工具介绍:
一套 RESTful 服务开发辅助工具集。

1.根据 URL 直接跳转到对应的方法定义 ( or Ctrl Alt N );
2.提供了一个 Services tree 的显示窗口;
3.一个简单的 http 请求工具;
4.在请求方法上添加了有用功能: 复制生成 URL;,复制方法参数...
5.其他功能: java 类上添加 Convert to JSON 功能,格式化 json 数据 ( Windows: Ctrl + Enter; Mac: Command + Enter )。
3:背景介绍:
因为我们公司开发模式为前后端分离,所以对接口文档要求较为苛刻,有时因开发任务多,接口文档无法及时提供,需要双方频繁沟通确认,为了解决这种现状,给大家安利一款插件,插件名为RestfulToolkit,能有效解决在无接口文档时,双方的联调工作。

4:安装
 

ctrl +alt +s  →settings
plugins →browse repositories
搜索框输入:RestfulToolkit →Install
安装完成后重启IDEA
下面为图示:

安装完成后就是上面的样子。安装失败的请升级IDEA至18及以上版本。

功能演示:
安装后,右侧会有RestServices侧边栏,点击后会显示当前项目所有请求地址,可以进行输入查询,然后会直接把请求方式,地址以及参数列出来,默认请求服务器为本机(localhost:8080),可根据需求更改。

全局快捷搜索:Ctrl  \ 

同类工具对比的优缺点:
优点:

其他工具如:postman,DHC,jmeter等,此工具直接集成与项目,不需要输入地址以及多个参数,便能直接访问。

缺点:

无法保存,每次使用参数都需要重新赋值,且没有请求记录。

总结:
此工具适合做接口测试,以及敏捷开发时使用,真证前后端分离式开发,还需要写好接口文档
---------------------
作者:想要这个昵称
来源:CSDN
原文:https://blog.csdn.net/qq_22741461/article/details/81625079
版权声明:本文为博主原创文章,转载请附上博文链接!

 

Idea 中解决maven 包冲突的问题(maven helper)

    • 首先安装插件 maven helper(因为我已经安装了,所以没 install 的按钮了) 

       

    • 安装完成后,在 pom 文件下方会出现这个东西 

       

    • 点进去你会发现仿佛回到了 eclipse 

    • 接下来到重点了,选中冲突选项 conflicts,这一列都是存在冲突的包 

       

    • 以fastjson 为例 

      当然我们调错误的时候也可以直接搜索有问题的包,如下 

       

    • 选中右键就可以 Exclude 啦,想用1.2.28就把其他版本的Exclude掉,想用1.2.3就把其他版本的Exclude掉,是不是很方便。 

       

https://www.cnblogs.com/a8457013/p/9108698.html






Install plugin from disk:
COMPATIBLE BUILDS 号匹配的问题,如果不匹配,plugin就不能安装成功:
网页上每个plugin Build版本:


IDE上的版本号:

 在窗口的右上角小齿轮中取消勾选 复选框“Compact Empty Middle Packages”,Package路径就会以下图的形式展示。好处:可以更改任一层目录的文件夹名

 

右键菜单中勾选了“Compact Empty Middle Packages”,则只能rename最外层的packsge名字:


右键菜单中,去掉“Compact Empty Middle Packages”,则可以rename任一层package名字

https://blog.csdn.net/lv_fq/article/details/51874181

 

Error:java: javacTask: source release 8 requires target release 1.8

 

解决办法:
Settings【ctrl+alt+s】没有shift键--》

Build,Execution,Deployment-->Compiler-->Java Compiler
在打开的界面中,将Project bytecode version改成期望的jdk版本,
如果需要把Per-module bytecode version下每个模块的Target bytecode version按需进行更改

 

 

必备材料介绍

Project 和 Module 介绍

这两个概念是 IntelliJ IDEA 的必懂知识点之一,请务必要学会。

如 果你是 Eclipse 用户,并且已经看了上面给的链接,那 IntelliJ IDEA 首先告诉你一个非常重要的事情:IntelliJ IDEA 没有类似 Eclipse 工作空间(workspace)的概念的。很多从 Eclipse 转过来的人总是下意识地要再同一个窗口管理 n 个项目,这在 IntelliJ IDEA 是无法得到。IntelliJ IDEA 提供的体验是:一个 Project 打开一个 Window 窗口。

对于 Project,IntelliJ IDEA 是这样解释的:

  • Whatever you do in IntelliJ IDEA, you do that in the context of a project. A project is an organizational unit that represents a complete software solution. It serves as a basis for coding assistance, bulk refactoring, coding style consistency, etc.
  • Your finished product may be decomposed into a series of discrete, isolated modules, but it's a project definition that brings them together and ties them into a greater whole.
  • Projects don't themselves contain development artifacts such as source code, build scripts, or documentation. They are the highest level of organization in the IDE, and they define project-wide settings as well as collections of what IntelliJ IDEA refers to as modules and libraries.
  • 链接地址:https://www.jetbrains.com/idea/help/project.html

对于 Module,IntelliJ IDEA 是这样解释的:

  • A module is a discrete unit of functionality which you can compile, run, test and debug independently.
  • Modules contain everything that is required for their specific tasks: source code, build scripts, unit tests, deployment descriptors, and documentation. However, modules exist and are functional only in the context of a project.
  • Configuration information for a module is stored in a .iml module file. By default, such a file is located in the module's content root folder.
  • Development teams, normally, share the .iml module files through version control.
  • 链接地址:https://www.jetbrains.com/idea/help/module.html

通 过上面的介绍我们知道,在 IntelliJ IDEA 中 Project 是最顶级的级别,次级别是 Module。一个 Project 可以有多个 Module。目前主流的大型项目结构都是类似这种多 Module 结构,这类项目一般是这样划分的,比如:core Module、web Module、plugin Module、solr Module 等等,模块之间彼此可以相互依赖。通过这些 Module 的命名也可以看出,他们之间应该都是处于同一个项目业务情况下的模块,彼此之间是有不可分割的业务关系的。

所以我们现在总结:一个 Project 是由一个或多个 Module 组成,模块之间尽量是处在同一个项目业务的的情况下,彼此之间互相依赖关联。这里用的是 尽量,因为 IntelliJ IDEA 的 Project 是一个没有具备任何编码设置、构建等开发功能的,主要起到一个项目定义、范围约束、规范等类型的效果,也许我们可以简单地理解为就是一个单纯的目录,只是这个目录命名上必须有其代表性的意义。

下面我们以著名的 spring-framework 项目为例介绍多 Module 的结构的:

  • 项目主页:https://github.com/spring-projects/spring-framework
  • 该项目的 Project 命名是:spring-framework。该目录主要作用为各个 Module 的顶层目录进行约束,告诉协同者,这个目录下都是 spring-framework 相关的,我绝不对放 Android 相关源码、文档、文件在上面的。该目录并不是以一个实际性的目录来提现的,所以你访问主页是看不到的,但是当你 checkout 的时候,你必须为这个项目命名,至于命名默认就是 spring-framework
  • 该 Project 下有二十来个 Module,各个 Module 的命名也是有含义的,比如:spring-corespring-jdbcspring-jmsspring-ormspring-webspring-webmvc 等等,我们通过这些命名也能清楚地知道他们要表达的含义,这些 Module 下也都各自有 src 编码目录,可以自行编码和构建。

  • 相比较于多 Module 项目,小项目就无需搞得这么复杂。只有一个 Module 的结构 IntelliJ IDEA 也是支持的,并且 IntelliJ IDEA 创建项目的时候,默认就是单 Module 的结构的。
  • 如上图 Gif 图演示,在输入 Project name 的时候,Module name 和 Module file Location 自动进行改变,同时 Project location 和 Module file Location 完全一样,这也就表示,Project 目录和 Module 目录是同一个,所以此时 Project 目录下就会有 src 目录,但是我们应该明白其本质还是 Module 的目录。

关于 IntelliJ IDEA 的 Project 和 Module 终于解释清楚了,但是由于 IntelliJ IDEA 官网上又有一段话对此解释得不够好,特别是对 Eclipse 用户来讲:https://www.jetbrains.com/idea/help/eclipse-faq.html,其中有这样两句话:

  • An Eclipse workspace is similar to a project in IntelliJ IDEA
  • An Eclipse project maps to a module in IntelliJ IDEA

你可以把 IntelliJ IDEA 的 Project 当做 workspace 使用,IntelliJ IDEA 也是支持的,但是就像我们前面解释的那么那么多,这样是非常不符合其初衷的,所以请别把这段话当做教义去学习。对此 zeroturnaround 的大牛也有针对此进行了说明:http://zeroturnaround.com/rebellabs/getting-started-with-intellij-idea-as-an-eclipse-user/3/

http://blog.csdn.net/ichsonx/article/details/48831277

 

 

(1)SVN相关的操作:

启用:
方法1:VCS菜单下Enable Version Control Integration,点击之后选择相应的版本控制工具
方法2:Setting中Version Control 中右边的 +  - none 都可以操作。

关闭:
类似开启中的方法2

 

(2)IntelliJ IDEA如何进行单元测试和代码覆盖率
http://jingyan.baidu.com/article/9faa72315be0ef473d28cb64.html

(3)解决中文乱码问题其实很简单。

按以下步骤设置,就可以顺利解决。

一、进入设置页。File-->Settings (快捷键:Ctrl+Alt+S)
二、进入IDE Settings,在File Encoding 中 的 Default encoding 改为 GB2312。
三、确定后,重新编译代码即可正常输出中文

http://blog.csdn.net/angelhacker/article/details/6581577

 

 (4)Show line numbers

 

IntelliJ IDEA打Jar

1.菜单:File->project stucture...(也可以按快捷键ctrl+alt+shift+s)
2.在弹窗最左侧选中Artifacts->左数第二个区域点击"+",选择jar,然后选择from modules with dependencies,然后会有配置窗口出现,配置完成后,勾选Build On mak (make 项目的时候会自动输出jar)->保存设置
3.然后菜单:Build->make project
4.最后在项目目录下去找输出的jar包(路径在你添加Artifacts的时候设置的路径,默认是%project%\out\artifacts\projectname_jar\)

如果你的程序不是web,也不是窗体,而是命令行的服务端,发现运行jar发现没有反应,但在进程里有javaw.exe,解决办法是在这个jar文件所在目录新建一个文本文件,内容如下:

@echo off
java -jar SocketServer.jar

然后将这个文件保存为xxxx.bat,以后要运行项目就直接运行这个bat批处理文件。


debug,查看运行时表达式运算结果的short-cut key:


使用工具栏上的VCS更新时,Update Project 选择”Merge"(平时执行的git pull = git fetch + git merge),Clean working tree before update 选择“Using Stash"(有问题可以直接在git bash中操作)

 

 https://www.jetbrains.com/help/idea/2016.3/update-project-dialog-git.html

Rest Client
Intellij IDEA 里面内置了一个 Rest Client,大家可以通过Mac/windows: Command + Shift + a / ctrl+shift+a,然后搜索 Rest Client 来找到"REST Client",然后双击,即可打开

   

 

REST Client实际上是Idea的一个plugin


http://www.cnblogs.com/jeffen/p/6169862.html

IDEA 查看UML的快捷键:

Ctrl + Alt + Shift + U



IntelliJ IDEA文件头注释模板
设置路径:
File-Other Settings-Default Settings-Editor-File and Code Templates-Includes-File Header

设置File Header:

/**
 * @author : tang.cheng
 * Project Name : ${PROJECT_NAME}
 * Description :
 * @version : ${VERSION} ${DATE} ${TIME}
 * Modified by :
 */

 

/**
 * ${PROJECT_NAME}
 * @author : tang.cheng@xiaoyi.com
 * @version : ${YEAR}-${MONTH}-${DAY}  ${TIME}
 *
 */

 

1、常用Java注释标签(Java comment tags)
@author 作者适用范围:文件、类、方法
(*多个作者使用多个@author标签标识,java doc中显示按输入时间顺序罗列。)
例:* @author Leo. Yao

@param 输入参数的名称 说明 适用范围:方法
例:* @param str the String用来存放输出信息。

@return 输出参数说明适用范围:方法
例: * @return <code>true</code>执行成功;
* <code>false</code>执行失败.

@since JDK版本用于标识编译该文件所需要的JDK环境。
适用范围:文件、类
例: * @since JDK1.6

@version 版本号用于标识注释对象的版本号
适用范围:文件、类、方法
例: * @version 1.0

@see 链接目标表示参考。会在java 文档中生成一个超链接,链接到参考的类容。
用法:
@see #field
@see #Constructor(Type, Type...)
@see #Constructor(Type id, Type id...)
@see #method(Type, Type,...)
@see #method(Type id, Type, id...)
@see Class
@see Class#field
@see Class#Constructor(Type, Type...)
@see Class#Constructor(Type id, Type id)
@see Class#method(Type, Type,...)
@see Class#method(Type id, Type id,...)
@see package.Class
@see package.Class#field
@see package.Class#Constructor(Type, Type...)
@see package.Class#Constructor(Type id, Type id)
@see package.Class#method(Type, Type,...)
@see package.Class#method(Type id, Type, id)
@see package

@throws 异常标识出方法可能抛出的异常
适用范围:方法
例: * @throws IOException If an input or output exception occurred

@deprecated 解释标识对象过期
适用范围:文件、类、方法

@link 链接地址链接到一个目标,用法类似@see。但常放在注释的解释中形如{@link …}
例:
/**
* @deprecated As of JDK 1.1, replaced by
* {@link #setBounds(int,int,int,int)}
*/
2、Java注释的使用顺序* @author (classes and interfaces only, required)
* @version (classes and interfaces only, required. See footnote 1)
* @param (methods and constructors only)
* @return (methods only)
* @exception (@throws is a synonym added in Javadoc 1.2)
* @see
* @since
* @serial (or @serialField or @serialData)
* @deprecated (see How and When To Deprecate APIs)

http://blog.csdn.net/tmj2014/article/details/12622241

 

Tomcat部署时war和war exploded区别

ServletContext(上下文),应用范围内即整个WEB项目都能使用这个上下文
war模式:发布模式,这是先打成war包,再部署 ; 【部署后的ServletContext是Servlet容器所在的目录,譬如Tomcat】
war exploded模式:将WEB工程以当前文件夹的位置关系上传到服务器【部署后的ServletContext是开发源代码所在的目录】; 

在使用IDEA开发项目的时候,部署Tomcat的时候通常会出现下边的情况:

(1)war模式这种可以称之为是发布模式,看名字也知道,这是先打成war包,再发布;
(2)war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。

(3)在平时开发的时候,使用热部署的话,应该对Tomcat进行相应的设置,这样的话修改的jsp界面什么的东西才可以及时的显示出来。

修改箭头指向的位置,这样的话就可以实现热部署:

使用war模式开发的时候遇到的坑
一、项目代码的位置如下:

三、用于获取上下文环境绝对路径的代码:

String contextPath = request.getSession().getServletContext().getRealPath("/");

四、两种方式的实验过程和结果:
(1)在使用war模式开发的时候,通过下边这段代码获取项目的相对路径:

其中C:\Software\apache-tomcat-8.0.32 是我Tomcat的所在位置。
可以看出通过war模式是最终打包部署到Tomcat的位置


(2)然后再看war exploded模式,同样进行设置,运行同一段代码,运行结果如下:

可以看出最终得到的是我这个项目的位置,其实就是这个项目target的位置。
https://blog.csdn.net/xlgen157387/article/details/56498938

实现Idea中修改jsp后热部署

问题:修改JS或者是JSP页面后,并没有生效,每次修改都需要重启一次Tomcat
解决办法:
step1:Deployment标签页中,new Artifact时选择 war exploded 。并检查右边的“Application context”设置与预期是否一致
step2:Server标签页中,
将 On 'Update' action中选择“Update classes and resources” ; 
将On frame deactivation中选择"Update classes and resources"

On 'update' action或On frame deactivation中没有 “Update classes and resources” ,是因为已经使用war【发布模式】进行Deploy过了。
解决办法:
step1:把war方式生成的Artifact删除
step2:使用 war exploded方式重新new一个Artifact

需要在Tomcat的设置中为:


on ‘update‘ action:当用户主动执行更新的时候更新    快捷键:Ctrl + F9
on frame deactication:在编辑窗口失去焦点的时候更新
你可以根据自己的需求进行设置,我这里两个都有设置。

问题2:如果你的工程中没有 Update classes and resources 这个选项

在这种情况下你更新后只能更新classes文件中的变动,并不能更新静态文件中的变动。

原因:在Deployment的选项中使用的是先将工程打成war包然后再去运行的



修改方式:
先remove当前工程,再次添加,添加的时候选择Artifact

然后选择工程名称后面有 exploded的选项

注意:
选择后记的填写Application context
然后在Server中更改为:Update classes and resources

http://www.cnblogs.com/hhhd/p/6640875.html

 

在Intellij 中对分支打tag操作。

为什么要打tag?
tag中文的意思是标签的意思,生活中的标签有很多,比如产品的合格标签,赠品标签。
而在开发过程中,可能会有这样的问题出现,1 一个版本开发结束后,进行分支合并,在master上进行测试 上线,上线后发现有问题需要急需退回到上一个版本,这就要求我们自己手动在服务器上备份很多的war或者备份很多的文件夹。2 如果一般的修改在没有拉取新分支,而是在master上直接修改的话,修改后上线有问题,可以及时的拉取退回。3 如果在发版的时候忘记了备份war或者备份文件夹,及时代码进行回滚,代码回滚会造成一部分提交无效。所以,打tag很必要。

git tag和git branches区别?
查知乎上说,tag就像里程碑标志的一个点,branch是一个新的征程的一条线;tag 是静态的,而branch要往前走;稳定版本备份用tag,新功能开发多人用branch,开发完之后再merge到master上。
tag是一个只读的branch。

打tag git命令

$ git tag  //列出git中现有的所有标签
$ git tag -l v1.4.2.*  //按照字母表顺序给出tag
v1.4.2.1
v1.4.2.2

$ git tag -a v1.4 -m ‘version 1.4//创建标签, -a 加标签,-m  加标签注释。
$ git tag v1.4-lw                         //创建轻量级标签,不用-a,-m等参数

$ git show v1.4   //git show 命令查看相应标签的版本信息,并连同显示打标签时的提交对象

$ git tag -a v1.2 9fceb02        //为已提交的信息贴上标签,为校验码为9fceb02*的版本贴上标签。

$ git push --tags  //如果上传到服务器时不能上传tag,可加上--tags命令。\

Intellij中打tag

官方说明: https://www.jetbrains.com/help/idea/2016.1/working-with-tags-and-branches.html
tag and branch: https://www.jetbrains.com/help/idea/2016.1/working-with-tags-and-branches.html

步骤:
1、You can create a tag in VCS -> Git -> Tag... menu. (打开VCS中的git --Tag 菜单)

commit 窗口:如果不填写默认是最新的head代码.
可以填写一个version的校验码:

2 Then open the push dialog with VCS -> Git -> Push and activate the checkbox "Push Tags".
在点击create tag 之后, git push (或者ctrl+shif +k键)

选择push tags , 可以push 当前分支的tag , 也可以选择push 全部分支的tag。

怎样拉取tag的代码
checkout tag or revision,来检出代码。

https://www.jetbrains.com/help/idea/2016.1/working-with-tags-and-branches.html

转载于:https://www.cnblogs.com/softidea/p/4447981.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值