“FAQ:IDEA”的版本间差异

来自Wikioe
跳到导航 跳到搜索
第249行: 第249行:
# 加载 Maven 变更;
# 加载 Maven 变更;


=== 方法一:通过“依赖项模板” ===
=== 方法二:通过“依赖项模板” ===
: [[File:IDEA:添加依赖项_2.png|400px]]
: [[File:IDEA:添加依赖项_2.png|400px]]



2022年5月8日 (日) 22:26的版本


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

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:设置 Maven“从本地缓存中获取配置信息”

创建 Maven 项目时,有一些模板信息默认从远程仓库下载获取,在网络状况不太好时,较为不便。

使用“-DarchetypeCatalog=internal”(用于设置从本地缓存中获取配置信息):

  • 如果设置了这个参数:第一次从远程拿,以后从本地拿。【要求第一次使用 Maven 必须联网】
文件:IDEA:设置Maven:跳过模板下载.png

IDEA:为项目添加依赖项

方法一:通过“依赖搜索窗口”

IDEA:添加依赖项.png

步骤:

  1. 打开“pom.xml”文件;
  2. 使用 Alt + Insert,并选择“添加依赖项”;
  3. 在“依赖项窗口”:
    1. 上侧:搜索栏,输入关键字;
    2. 左侧:结果列表,点击依赖,并选择版本;
    3. 右侧:显示软件包详情(包括:仓库、项目站点、文档、自述文件等);
    4. 点击“添加”;
  4. 加载 Maven 变更;

方法二:通过“依赖项模板”

IDEA:添加依赖项 2.png

步骤:

  1. 打开“pom.xml”文件;
  2. 使用 Alt + Insert,并选择“依赖项模板”;
  3. 在模板中分别输入相关内容;【有代码提示,但较慢】
  4. 加载 Maven 变更;

IDEA:更新 Maven 仓库索引

Maven 仓库索引,用于在“为项目添加依赖项”时,提供代码提示、结构搜索。【如上节所示】

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”。

由于网络原因,无法连接到该远程仓库。

解决

  1. 方式一:使用国内仓库或镜像。
    如:https://repo1.maven.org/maven2/https://repo2.maven.org/maven2/,不稳定但能用;
  2. 方式二:设置代理:
    Ctrl + Alt + S”-> ... ->“Maven”->“importing”:在“VM options for importer”项,添加:
    -DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=10800
    
    Idea:为 Maven-importing 设置代理
    • 如果使用 shadowsocks:相关地址不在 PAC 名单中,所以可能需要使用全局模式。

更新失败:该仓库不支持仓库索引

错误信息:“Repository is non-nexus repo, or is not indexed”。

配置的远程仓库不支持索引。

解决:使用支持索引的 Maven 仓库;


P.S.:

1、阿里云等Maven仓库“目前还未支持生成和下载 maven indexer 文件”

2、阿里云 Maven 仓库:“阿里不再支持 http 下载,只支持 https”。
    需要对 Maven->importing(VM options for importer)设置“忽略ssl证书的验证”:-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true;


阿里云Maven 使用指南:[[https://developer.aliyun.com/mvn/guide]

P.S.:使用 Nexus 私服

针对于以上两个问题:
   1、国外仓库支持索引,但网络不稳定;
   2、国内仓库网络稳定,但不支持索引。

除了使用代理,还有另一种思路:使用 nexus 建立 Maven 私服。

    用私服代理远程仓库,只要保证本地到私服的网络畅通即可。(如果是在本地搭建私服,则同样需要解决私服到远程仓库的网络问题)


参考:
   1、“利用nexus私服,解决IDEA无法下载maven仓库索引文件的终极解决方案”
   2、“IDEA Maven Repositiory Index 错误/ resource nexus-maven-repository-index.properties does not exist

见:Maven:settings.xml示例#示例二:使用_nexus2/3