“FAQ:IDEA”的版本间差异

来自Wikioe
跳到导航 跳到搜索
标签手工回退
 
(未显示同一用户的8个中间版本)
第99行: 第99行:
#: [[File:IDEA:打包流程:测试 jar 包.png|400px]]
#: [[File:IDEA:打包流程:测试 jar 包.png|400px]]


== IDEA 设置:代码模板 ==
=== 关于:“META-INF/MANIFEST.MF”的位置 ===
如果您使用 Intellij Idea 构建 JAR 文件,Intellij Idea 将自动选择“清单文件”(<span style="color: green">'''META-INF/MANIFEST.MF'''</span>)的位置。如果您使用其他构建系统(如:Gralde、Maven),则需要使用资源文件夹(<span style="color: green">'''resources'''</span>)来存储清单。
 
如上,使用 IDEA 来构建 JAR 文件,所以自动选择 META-INF/MANIFEST.MF 位置就好。
 
== IDEA 代码模板 ==
=== 实时模板 ===
=== 实时模板 ===
设置:
设置:
第228行: 第233行:
: [[File:IDEA:编译单个类.png|600px]]
: [[File:IDEA:编译单个类.png|600px]]


== IDEA:设置 Maven“从本地缓存中获取配置信息” ==
== 如何重新打开主菜单? ==
  创建 Maven 项目时,有一些模板信息默认从远程仓库下载获取,在网络状况不太好时,较为不便。
  手欠,把 IDEA 的主菜单显示取消了。(“视图”->“外观”:取消了勾选“工具栏”)
 
使用“<span style="color: blue">-DarchetypeCatalog=internal</span>”(用于设置从本地缓存中获取配置信息):
* 如果设置了这个参数:第一次从远程拿,以后从本地拿。【要求第一次使用 Maven 必须联网】
: [[File:IDEA:设置Maven:跳过模板下载.png|600px]]
 
== IDEA:为项目添加依赖项 ==
一般可以通过 <span style="font-size: 18px">'''[https://mvnrepository.com/ mvnrepository 网站]'''</span> 搜索软件包的依赖配置信息,然后直接复制到项目的“pom.xml”文件中。
   
   
  如果要通过 IDEA 添加依赖项,有以下两种方式。(需要 IDEA 的 Maven 索引)
  想改回来,突然发现没得地头改了……尴尬


=== 方法一:通过“依赖搜索窗口” ===
解决:
: [[File:IDEA:添加依赖项.png|600px]]
# <s>通过 ui 配置文件;(“C:\Users\eijux\AppData\Roaming\JetBrains\IntelliJIdea2022.1\options”下“ui.lnf.xml”)</s>
#:【不管用了】
# 通过“'''Search Everywhere'''”窗口;
#: 输入“主菜单”/“main menu”,开启“视图 | 外观:主菜单”。
#: [[File:IDEA:重新打开“主菜单”.png|600px]]


步骤:
== 控制台输出中文乱码? ==
# 打开“pom.xml”文件;
解决:(添加“'''-Dfile.encoding=UTF-8'''”)
# 使用 '''<code>Alt</code> + <code>Insert</code>''',并选择“'''添加依赖项'''”;
# 修改 idea.vmoptions 文件:(“D:\Program Files\JetBrains\IntelliJ IDEA\bin”)
# 在“依赖项窗口”:
#: [[File:IDEA:控制台输出中文乱码解决1.png|400px]]
## 上侧:搜索栏,输入关键字;
# 修改 Run/Debug Configurations 中的 VM options(虚拟机参数):
## 左侧:结果列表,点击依赖,并选择版本;
#: [[File:IDEA:控制台输出中文乱码解决2.png|400px]]
## 右侧:显示软件包详情(包括:仓库、项目站点、文档、自述文件等);
## 点击“添加”;
# 加载 Maven 变更;
 
=== 方法二:通过“依赖项模板” ===
: [[File:IDEA:添加依赖项_2.png|400px]]


== 如何自动生成 serialVersionUID? ==
步骤:
步骤:
# 打开“pom.xml”文件;
# 设置“检查:不带'serialVersionUID'的可序列化类”:
# 使用 '''<code>Alt</code> + <code>Insert</code>''',并选择“'''依赖项模板'''”;
#:(<code>Ctrl + Alt</code> + <code>S</code> -> 编辑器 -> 检查(Inspections):JVM语言)
# 在模板中分别输入相关内容;【有代码提示,但较慢】
#: [[File:IDEA:自动生成 serialVersionUID_1.png|400px]]
# 加载 Maven 变更;
# 在(实现了“Serializable”接口的)类名上 <code>Alt + Enter</code>
 
#: [[File:IDEA:自动生成 serialVersionUID_2.png|400px]]
== IDEA:更新 Maven 仓库索引 ==
#* 如需随机更改 serialVersionUID,在值上 <code>Alt + Enter</code>
Maven 仓库索引,用于在“为项目添加依赖项”时,提供代码提示、结构搜索。【如上节所示】
#*: [[File:IDEA:自动生成 serialVersionUID_3.png|400px]]
#* 使用“修复快捷键”(<code>Alt + Enter</code>),而不是“生成快捷键”(<code>Alt + Insert</code>);
IDEA 的 Maven 索引位置:“C:\Users\eijux\AppData\Local\JetBrains\IntelliJIdea2022.1\Maven\Indices”
 
为 Maven 配置了 setting.xml 之后,更新仓库索引可能失败,有以下两种情况。
 
=== 更新失败:网络问题 ===
错误信息:“'''Cannot connect to the Maven process. Try again later. If the problem presists, check the Maven Importing JDK settings and restart Intelli IDEA'''”。
由于网络原因,无法连接到该远程仓库。
 
'''解决''':
# 方式一:使用国内仓库或镜像。
#: 如:[https://repo1.maven.org/maven2/ https://repo1.maven.org/maven2/]、[https://repo2.maven.org/maven2/ https://repo2.maven.org/maven2/],不稳定但能用;
# 方式二:设置代理:
#: “<code>Ctrl + Alt</code> + <code>S</code>”->  ...  ->“Maven”->“importing”:在“VM options for importer”项,添加:
#: <syntaxhighlight lang="xml">-DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=10800</syntaxhighlight>
#: [[File:Idea:为 Maven-importing 设置代理.png|none|thumb|600px|Idea:为 Maven-importing 设置代理]]
#* 如果使用 shadowsocks:相关地址不在 PAC 名单中,所以可能需要使用全局模式。
 
=== 更新失败:该仓库不支持仓库索引 ===
错误信息:“'''Repository is non-nexus repo, or is not indexed'''”。
配置的远程仓库不支持索引。
 
'''解决''':使用支持索引的 Maven 仓库;
 
 
'''P.S.:'''
1、阿里云等Maven仓库“[https://developer.aliyun.com/article/621196 目前还未支持生成和下载 maven indexer 文件]”
2、阿里云 Maven 仓库:“'''阿里不再支持 http 下载,只支持 https'''”。
    需要对 Maven->importing(VM options for importer)设置“'''忽略ssl证书的验证'''”:'''“<syntaxhighlight lang="xml" inline>-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true</syntaxhighlight>”''';
阿里云Maven 使用指南:[[https://developer.aliyun.com/mvn/guide [https://developer.aliyun.com/mvn/guide]]
 
=== P.S.:使用 Nexus 私服 ===
针对于以上两个问题:
   1、国外仓库支持索引,但网络不稳定;
   2、国内仓库网络稳定,但不支持索引。
除了使用代理,还有另一种思路:'''使用 nexus 建立 Maven 私服'''。
    用私服代理远程仓库,只要保证本地到私服的网络畅通即可。(如果是在本地搭建私服,则同样需要解决私服到远程仓库的网络问题)
参考:
   1、“[https://blog.csdn.net/qq_40573891/article/details/80711107?spm=1001.2101.3001.6650.10&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-10.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-10.no_search_link 利用nexus私服,解决IDEA无法下载maven仓库索引文件的终极解决方案]
   2、“[https://blog.csdn.net/u010165638/article/details/89948308 IDEA Maven Repositiory Index 错误/ resource nexus-maven-repository-index.properties does not exist]
 
见:'''[[Maven:settings.xml示例#示例二:使用_nexus2/3]]'''

2022年5月23日 (一) 02:02的最新版本


IDEA 删除残留的 IDE 目录(旧版本内容清理)

IDEA 不断更新升级,在机器中就会不断残留旧版本的一系列内容(设置、缓存、插件等等)。

删除它们可释放空间,且不影响当前版本的稳定性。

步骤:

  1. 导航栏:“帮助”->“删除残留的 IDE 目录”;
    IDEA:删除残留的 IDE 目录 1.png
  2. 右下角:点击“查看并删除”;
    IDEA:删除残留的 IDE 目录 2.png
  3. 弹出窗口:勾选,删除;
    IDEA:删除残留的 IDE 目录 3.png


以上清理只针对 IDEA 的旧版本,其他产品(如:PhpStorm、WebStorm)可以手动清理:

位置 1:“C:\Users\eijux\AppData\Roaming\JetBrains\”
位置 2:“C:\Users\eijux\AppData\Local\JetBrains\”

【注意:手动清理时,不要删除当前版本的内容!!!】

IDEA 位置信息

各个位置:

  1. 安装目录:“D:\Program Files\JetBrains\IntelliJ IDEA”;
  2. 配置相关:“C:\Users\eijux\AppData\Roaming\JetBrains\IntelliJIdea2022.1”;
    • 包括:代码风格、扩展、插件、键盘映射 等等。
  3. 使用相关:“C:\Users\eijux\AppData\Local\JetBrains\IntelliJIdea2022.1”;
    • 包括:缓存、索引、日志、文件历史、本地历史、Maven 等等。
  4. ???:“C:\Users\eijux\.ideaLibSources”;

日志

  1. IDEA 中:
    IDEA:在 Explorer 中显示日志.png
  2. Explorer 中:
    “C:\Users\eijux\AppData\Local\JetBrains\IntelliJIdea2022.1\log”

IDEA 调试按钮

Debug 窗口:

IDEA:Debug窗体.png

Debug 操作:

IDEA:Debug操作.png

Debug:调试按钮

IDEA:Debug调试按钮.png
  1. 显示执行点(Show Execution Point,Alt + F10):
    如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行。
  2. 步过(Step Over,F8):
    一行一行地往下走,如果这一行上有方法不会进入方法。
  3. 步入(Step Into,F7):
    如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法。
  4. 强制步入(Force Step Into,Alt + Shift + F7):
    能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。
  5. 步出(Step Out,Shift + F8):
    从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值。
  6. 运行到光标处(Run to Cursor,Alt + F9):
    你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。
  7. 评估表达式(Evaluate Expression,Alt + F8
    • 表达式不仅可以是算数计算,也可以是一般变量、参数,还可以是方法
    • 在计算表达式的框里,可以改变变量的值,这样就能能很方便去调试各种值的情况;

Debug:服务按钮

IDEA:Debug服务按钮.png
  1. 重新运行Ctrl + F5
  2. 修改运行配置Ctrl + F5
  3. 恢复程序(Resume Program,F9):向下执行程序,直到下一个断点。
  4. 暂停程序(Pause Program)
  5. 停止程序(Stop 'xxx',Ctrl + F2
  6. 查看断点(View Breakpoints,Ctrl + Shift + F8
  7. 静音断点(Mute Breakpoints):使所有断点失效(变为灰色)
    • 此时,按 F9 则可以直接运行完程序;
    • 如果只想使某一个断点失效,可以在断点上右键取消“Enabled”;

IDEA 打包流程

步骤:

  1. 打开“项目结构”(Ctrl + Alt + Shift + S);
    选择“工件”(Artifacts)-> 添加“JAR”-> 选择:“空”或“来自具有依赖项的模块”
    IDEA:打包流程:添加工件.png
    1. JAR:“空”
      1. 修改名称;
        IDEA:打包流程:添加工件:“JAR—空” 1.png
      2. 设置清单;
        IDEA:打包流程:添加工件:“JAR—空” 2.png
      3. 指定主类;
        IDEA:打包流程:添加工件:“JAR—空” 3.png
      4. 添加元素;(向 Jar 添加编译后的 Class 文件)
        IDEA:打包流程:添加工件:“JAR—空” 4.png
    2. JAR:“来自具有依赖项的模块”【即:从模块创建JAR】
      1. 设置向导:模块、主类:
        IDEA:打包流程:添加工件:“从模块创建JAR” 1.png
      2. 工件详情:
        IDEA:打包流程:添加工件:“从模块创建JAR” 2.png
  2. 构建工件:
    IDEA:打包流程:构建工件 1.png
    IDEA:打包流程:构建工件 2.png
  3. Jar 包测试:
    IDEA:打包流程:测试 jar 包.png

关于:“META-INF/MANIFEST.MF”的位置

如果您使用 Intellij Idea 构建 JAR 文件,Intellij Idea 将自动选择“清单文件”(META-INF/MANIFEST.MF)的位置。如果您使用其他构建系统(如:Gralde、Maven),则需要使用资源文件夹(resources)来存储清单。

如上,使用 IDEA 来构建 JAR 文件,所以自动选择 META-INF/MANIFEST.MF 位置就好。

IDEA 代码模板

实时模板

设置:

IDEA设置:实时模板.png


使用示例:

  1. psvmmain
    输入:
    public class Test {
        psvm
    }
    
    效果:
    public class Test {
        public static void main(String[] args) {
            
        }
    }
    
  2. sout
    输入:
    public class Test {
        public static void main(String[] args) {
            sout
        }
    }
    
    效果:
    public class Test {
        public static void main(String[] args) {
            System.out.println();
        }
    }
    

后缀补全

设置:

IDEA设置:后缀补全.png


使用示例:

  1. xxx.sout
    输入:
    public class Test {
        public static void main(String[] args) {
            "你好".sout
        }
    }
    
    效果:
    public class Test {
        public static void main(String[] args) {
            System.out.println("你好");
        }
    }
    
  2. xxx.try
    输入:
    public class Test {
        public static void main(String[] args) {
            Helloworld.main(args);.try
        }
    }
    
    效果:
    public class Test {
        public static void main(String[] args) {
            try {
                Helloworld.main(args);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    }
    

IDEA 运行前构建会检查出所有类的错误

IDEA 默认情况下:
1、在“调试/运行”某个类之前,会进行“构建”(Build);
2、在“构建”过程中,会检查并报告(项目或模块下的)所有类的错误;
3、若“构建”失败,则取消“调试/运行”。

即:想要“调试/运行”当前类,就必须确保所有类都没有错误。十分不方便。

通过以下两种方式可以解决:

  1. 运行前不构建
  2. 构建,无错误检查
  • 都只对当前类有效,需要配置类的“运行/调试配置


设置:“运行前不构建”

如此:可直接“调试/运行”类,而不进行“构建”

【没有“构建”过程,在右下角“通知”无任何提示】

“运行/调试配置”:

  1. 选择配置的类;
  2. 在“运行”栏,点击“修改选项”:勾选 Java 下的“运行前不构建”;
IDEA:运行前不构建.png

设置:“添加启动前任务”:“构建,无错误检查”

如此:可在“构建”过程中,不检查类的错误信息

【仍有“构建”过程,在右下角“通知”提示:编译耗时、找到的“错误/警告”】

“运行/调试配置”:

  1. 选择配置的类;
  2. 在“运行”栏,点击“修改选项”:勾选“添加启动前任务”;
    IDEA:启动前任务.png
  3. 在“启动前”栏:添加新任务“构建,无错误检查”;
    IDEA:启动前“构建,无错误检查”.png

P.S.:编译单个类

如此:仅“编译”单个类,不会提示其他类错误

步骤:

  1. (在编辑区,将光标定位到需要的类下):
  2. 在导航栏“构建”:点击“重新编译”;
IDEA:编译单个类.png

如何重新打开主菜单?

手欠,把 IDEA 的主菜单显示取消了。(“视图”->“外观”:取消了勾选“工具栏”)

想改回来,突然发现没得地头改了……尴尬

解决:

  1. 通过 ui 配置文件;(“C:\Users\eijux\AppData\Roaming\JetBrains\IntelliJIdea2022.1\options”下“ui.lnf.xml”)
    【不管用了】
  2. 通过“Search Everywhere”窗口;
    输入“主菜单”/“main menu”,开启“视图 | 外观:主菜单”。
    IDEA:重新打开“主菜单”.png

控制台输出中文乱码?

解决:(添加“-Dfile.encoding=UTF-8”)

  1. 修改 idea.vmoptions 文件:(“D:\Program Files\JetBrains\IntelliJ IDEA\bin”)
    IDEA:控制台输出中文乱码解决1.png
  2. 修改 Run/Debug Configurations 中的 VM options(虚拟机参数):
    IDEA:控制台输出中文乱码解决2.png

如何自动生成 serialVersionUID?

步骤:

  1. 设置“检查:不带'serialVersionUID'的可序列化类”:
    Ctrl + Alt + S -> 编辑器 -> 检查(Inspections):JVM语言)
    IDEA:自动生成 serialVersionUID 1.png
  2. 在(实现了“Serializable”接口的)类名上 Alt + Enter
    IDEA:自动生成 serialVersionUID 2.png
    • 如需随机更改 serialVersionUID,在值上 Alt + Enter
      IDEA:自动生成 serialVersionUID 3.png
    • 使用“修复快捷键”(Alt + Enter),而不是“生成快捷键”(Alt + Insert);