目录

idea

idea中maven依赖jar拉不下来

在一个工程中始终拉不下来,换一个工程就能正常拉取,查看idea日志:

日志路径:/Users//Library/Logs/IntelliJIdea2019.2/idea.log

你可以这么找某些程序的日志路径

  1. 打开活动监视器

    http://img.cana.space/picStore/20211011190206.png

  2. 这里出现的东西其实就是该程序所依赖的所有文件,所以肯定可以找到,可以粘贴到文本处理工具中,以idea.log为关键字进行搜索。

    http://img.cana.space/picStore/20211011190220.png

打开日志后发现这样一句错误

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
Caused by: java.lang.RuntimeException: org.eclipse.aether.resolution.ArtifactResolutionException: Cannot access nexus-aliyun (http://maven.aliyun.com/nexus/content/groups/public) in offline mode and the artifact org.apache.maven.plugins:maven-site-plugin:jar:3.3 has not been downloaded from it before.
	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:422)
	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:224)
	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:201)
	at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:260)
	at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:124)
	... 17 more
Caused by: java.lang.RuntimeException: org.eclipse.aether.transfer.ArtifactNotFoundException: Cannot access nexus-aliyun (http://maven.aliyun.com/nexus/content/groups/public) in offline mode and the artifact org.apache.maven.plugins:maven-site-plugin:jar:3.3 has not been downloaded from it before.
	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:369)
	... 21 more

提示“无法在脱机状态下访问”

想起来自己之前对idea做过一些设置,打开菜单栏,file -> setting ,找到maven查看,右侧有一个work offline,取消掉勾选。保存退出,重新下载。

http://img.cana.space/picStore/20211011190319.png

选择右侧maven,重新加载,Reimport!!ok,解决问题。

这里主要记录自己的解决方法,仅供大家学习参考。

java: Compilation failed: internal java compiler error

还有一种情况是因项目过大,需要修改这个堆的大小 解决方法如下: 在setting–>Build,Execution,Deployment–>Compiler 中找到build process heap size(Mbytes):700改为1024(视情况而定)

idea遇到奇怪问题for example: not eligible for auto-proxying

报错信息

http://img.cana.space/picStore/20210911095820.png

中文意思: for example: not eligible for auto-proxying 例如:不符合自动代理的条件

解决办法

http://img.cana.space/picStore/20210911095846.png

也有可能是其他不正常的断点勾选引起的,只要保留正常的断点勾选即可,当然也可以删除不需要的断点

错误原因分析

一般是因为debug启动,有请求进入断点,此时又将服务重新启动

idea防止代码格式化导致的大规模冲突方法

局部格式化,cmd+opt+shift+L (windows是Ctrl+Shift+Alt+L)将弹出以下窗口

http://img.cana.space/picStore/20210909144405.png

其中,勾选Only VCS changed text将只格式化本地对版本控制中代码修改的地方,也能有效避免大批量冲突问题.

勾选后后续格式化代码cmd+opt+L(windows是Ctrl+Alt+L)将继续按照设置执行不需再次设置

Ignored pom.xml

原因:由于相同名称的module在之前被创建过,因此在IDEA中留有痕迹。重新创建一个新的同名module会让IDEA误以为是之前被删除掉的module,所以才自动将这个pom.xml文件忽略

解决:1.点击file > Setting进入设置,2.找到lgnored file,把右边已选中的选项取消勾选,然后点击 ok,3.再点击右上角Maven中的刷新一下,这样pom.xml 文件就被变回来了

Idea2020新建static web项目

2020版的IDEA在新建工程的时候已经找不到Static Web工程了,而且插件也失去了效果,可以在新建工程页面选择JavaScript创建新项目。

IDEA警告:SQL dialect is not configured

在File—->Setting—>Languages & Frameworks—>SQL Dialects中,选择对应的数据库,如MySQL,之后点击保存即可。

这样的一个好处还有一个,就是idea直接可以识别你数据库中的字段了,按着cmd然后点击代码中的数据库字段,idea右边会弹出你的数据库字段,前提是你idea已经配置了数据库链接

mac上 idea 启动Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines…

在用idea软件run的时候显示:

1
(objc[23229]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/bin/java (0x10af154c0) and     /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x10afd04e0). One of the two will be used. Which one is undefined.)

解决办法:

  1. 点击IntelliJ IDEA最上面菜单的”Help”下的“Edit Custom Properties”,没有这个properties文件的话,IntelliJ IDEA会提示创建;

  2. 在文件中加上

    1
    
    idea.no.launcher=true
    
  3. 重启IntelliJ IDEA

原因分析:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
You can find all the details here:

IDEA-170117 “objc: Class JavaLaunchHelper is implemented in both …” warning in Run consoles
It’s the old bug in Java on Mac that got triggered by the Java Agent being used by the IDE when starting the app. This message is harmless and is safe to ignore. Oracle developer’s comment:

The message is benign, there is no negative impact from this problem since both copies of that class are identical (compiled from the exact same source). It is purely a cosmetic issue.

The problem is fixed in Java 9 and in Java 8 update 152.

If it annoys you or affects your apps in any way, the workaround for IntelliJ IDEA is to disable idea_rt launcher agent by adding idea.no.launcher=true into idea.properties (Help | Edit Custom Properties...).

Mac上面Java的一个老Bug了,会在那些使用了Java Agent的IDE上运行应用时触发,但这个Error对程序是无影响的,可以无视

IDEA toolbar整理

移除:xxx 右键 -> remove from sidebar

找回来:View→Tool Windows -> xxx

IDEA中使用Data Source and Drivers

view->Tool Windows->Database->填写连接元素

IDEA Library source does not match the bytecode for class

  1. 将本地jar删除重新下载依赖
  2. 此时IDEA-Maven的Dependencies中会出现红色波浪线
  3. 查看本地jar是否存在, 如果确实已存在
  4. 从pom文件中将对应的依赖删除,reimport,再将依赖加回来,此时恢复正常

更新:上述方法并没有解决问题,本质原因是缺少jar包依赖

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package org.springframework.validation.beanvalidation;

import java.util.Iterator;
import java.util.Set;

import javax.validation.ConstraintViolation;
// 下面这3个类在validation-api中,需要引入下面的依赖即可解决
/*
<dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.1.0.Final</version>
        </dependency>
*/
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;

import org.springframework.aop.framework.AopProxyUtils;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanInitializationException;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;

public class BeanValidationPostProcessor implements BeanPostProcessor, InitializingBean {

问题解决

idea报Could not autowired解决办法

inspections->spring->spring core->code->Autowiring for Bean Class 取消勾选

IDEA中普通文件夹和module文件互相转换

经常会遇到从GitHub上download的progect在idea里面打开是普通文件夹形式,而并不是我们想要的module形式(文件夹图标右下角有个蓝色的tag),那么如何快速转换成我们想要的module形式呢?

1、右击project,选择第二项“add framework support”,然后从对话框左侧选择“Maven”,OK即可

2、设置maven仓库地址:右击file,选择settings,找到maven,设置maven home directory以及后面两项。(图片大小超过限制。。我就不传图了)

3、OK完成,等加载刷新。


第二种情况:Remove Module(当你把project下中的一个module删除delete之后,会发现该文件夹右下角的蓝色flag消失了,但文件还在)。。那么如果你想重新把它加入module的话,该如何操作呢?

1、右击该普通文件夹的父级(即它上一级的module),选择Open Module Settings,之后会弹出一个框

2、在中间文件夹这一列找到刚刚的父级module,选中后点击列顶部的加号“+”,在弹出框选择“Import Module”,找到要加入module的子级文件夹,点击OK

3、弹出框,选择“Next”,always,最后一步选择“Select all”,然后点击“Finish”,搞定!

此时你会发现,消失的蓝色flag又恢复啦!

设置

IDEA快速查看类继承结构和类的方法

  • ALT+7:查看类的方法
  • CTRL+H:查看继承顺序

idea中tomcat配置热部署

部署war时有两种选择 war和war exploded

区别:

  • war模式这种可以称之为是发布模式,就是先将WEB工程打成war包,然后再将其上传到服务器进行发布
  • war exploded模式是将WEB工程以当前文件夹的位置关系上传到服务器,即直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。

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

https://gitee.com/lienhui68/picStore/raw/master/null/20201010022213.png

参考:https://blog.csdn.net/czc9309/article/details/80304074

Auto Import

Settings→Editor→General→Auto Import 然后勾选Add unambiguous imports on the fly以及Optimize imports on the fly

Add unambiguous imports on the fly:快速添加明确的导入。 Optimize imports on the fly:快速优化导入,优化的意思即自动帮助删除无用的导入。

Transparent native-to-ascii conversion

Transparent native-to-ascii conversion的意思是:自动转换ASCII编码。工作原理是:在文件中输入文字时他会自动的转换为Unicode编码,然后在idea中发开文件时他会自动转回文字来显示。

修改内存

Help-> Edit Custom VM Options

显示内存使用情况

Appearance&Behavior -> Appearance -> Window Options-> 勾选Show memeroy indicator

编辑界面使用cmd+滚轮控制字体大小

Editor -> General -> 勾选Change font size(Zoom) with Command+Mouse Wheel

方法之间设置分隔符

Editor -> Appearance -> 勾选Show method separators

首字母不区分大小写提示

https://gitee.com/lienhui68/picStore/raw/master/null/20200706200014.png

设置文件头

https://gitee.com/lienhui68/picStore/raw/master/null/20200706195946.png

设置自动编译

https://gitee.com/lienhui68/picStore/raw/master/null/20200706200040.png

Code Completion

  1. live templates

    eg:

    1
    2
    3
    4
    5
    6
    7
    
    /**
     * $desc$
     */
    @Test
    public void test$num$(){
        $end$
    }
    

    https://gitee.com/lienhui68/picStore/raw/master/null/20200809184254.png

    设置时可参考:

    Live template variables

    tutorial

  2. postfix completion

    eg:

    1
    
    $EXPR$.stream().forEach(System.out::println);
    

tab跳出括号

在最新的 2018.2 EAP version 中,官方加入了新的特性,默认关闭,需要自行开启:在Settings->Editor->General->Smart Keys 中就能找到Jump outside closing bracket/quote with Tab 勾选即可。

激活

我的idea版本是2019.1.1, 在网上下载jetbrains-agent-v2.1.1-支持idea版本为-2019.1.3.zip,解压

激活主要使用这里面的两个文件jetbrains-agent.jar和ACTIVATION_CODE.txt

步骤:

  1. 修改IntelliJ Idea安装目录bin文件夹里的idea64.exe.vmoptions文件,如果是32位系统,就对应的是idea.exe.vmoptions文件。

    在该文件最后一行添加:

    1
    
    -javaagent:/Users/david/my/config/jetbrains-agent.jar
    
  2. 启动idea,打开注册窗口,选择Activation code方式离线激活,请使用:ACTIVATION_CODE.txt 内的注册码激活如果激活窗口一直弹出(error 1653219),请去hosts文件里移除jetbrains相关的项目

插件

jclasslib Bytecode viewer

为了更方便的在IDEA环境下阅读class文件内容

https://gitee.com/lienhui68/picStore/raw/master/null/20200717125549.png

点击.java文件,然后点击上方show bytecode with jclasslib试试

visualVM

参考IDEA集成VisualVM

jvisualvm集成插件

安装插件

插件中心默认的路径已经弃用了,进入:https://visualvm.github.io/pluginscenters.html

里面有各个版本,选择jdk8这一版本

拷贝:https://visualvm.github.io/uc/8u131/updates.xml.gz 设置为新的插件中心地址

JProfiler

参考Intellij IDEA集成JProfiler性能分析神器

附两个11序列号

L-J11-Everyone#speedzodiac-327a9wrs5dxvz#463a59

A-J11-Everyone#admin-3v7hg353d6idd5#9b4

Lombok

https://www.jianshu.com/p/2543c71a8e45

常用快捷键

https://java-er.com/blog/mac-intellij-idea-2020-keyboard/

Editing(编辑)

  • ⌃⇧J 智能的将代码拼接成一行
  • ⌘↩ 智能的拆分拼接的行
  • ⇧↩ 开始新的一行
  • ⌘⇧] / ⌘⇧[ 切换到左边/右边标签
  • ⌥⌦ 删除到单词的末尾(⌦键为Fn+Delete)
  • ⌥⌫ 删除到单词的开头
  • ⌘+ / ⌘- 展开 / 折叠代码块
  • ⌘⇧+ 展开所以代码块
  • ⌘⇧- 折叠所有代码块
  • ⌘W 关闭活动的编辑器选项卡
  • 选中下一个相同的内容:ctrl + G
  • 选中文件中所有相同个的内容:command + ctrl + G

Search/Replace(查询/替换)

  • ⌘G 查找模式下,向下查找
  • ⌘⇧G 查找模式下,向上查找
  • ⌘⇧F 全局查找(根据路径)
  • ⌘⇧R 全局替换(根据路径)

替换双击Shift

因为习惯经常切换输入法的原因,经常会不小心双击shift打开IDEA的全局搜索,替换步骤如下:

  1. 禁用双击shift

    cmd+shift+A,输入Registry,找到ide.suppress.double.click.handler选项,选中,然后close就行。

  2. 设置全局查找快捷键

    key map -> Search Everywhere -> 设置新的快捷键