“FAQ:IDEA”的版本间差异
跳到导航
跳到搜索
第259行: | 第259行: | ||
== IDEA:更新 Maven 仓库索引 == | == IDEA:更新 Maven 仓库索引 == | ||
Maven | Maven 仓库索引,用于在“为项目添加依赖项”时,提供代码提示、结构搜索。【如上节所示】 | ||
为 Maven 配置了 setting.xml 之后,更新仓库索引可能失败,有以下两种情况。 | 为 Maven 配置了 setting.xml 之后,更新仓库索引可能失败,有以下两种情况。 |
2022年5月8日 (日) 22:14的版本
IDEA 删除残留的 IDE 目录(旧版本内容清理)
IDEA 不断更新升级,在机器中就会不断残留旧版本的一系列内容(设置、缓存、插件等等)。 删除它们可释放空间,且不影响当前版本的稳定性。
步骤:
以上清理只针对 IDEA 的旧版本,其他产品(如:PhpStorm、WebStorm)可以手动清理: 位置 1:“C:\Users\eijux\AppData\Roaming\JetBrains\” 位置 2:“C:\Users\eijux\AppData\Local\JetBrains\” 【注意:手动清理时,不要删除当前版本的内容!!!】
IDEA 位置信息
各个位置:
- “D:\Program Files\JetBrains\IntelliJ IDEA”:安装目录;
- “C:\Users\eijux\AppData\Roaming\JetBrains\IntelliJIdea2022.1”:软件配置相关???
- 包括:代码风格、扩展、插件、键盘映射等等。
- “C:\Users\eijux\AppData\Local\JetBrains\IntelliJIdea2022.1”:软件使用相关???
- 包括:缓存、索引、日志、文件历史、本地历史等等。
- “C:\Users\eijux\.ideaLibSources”:???
日志
IDEA 调试按钮
Debug 窗口:
Debug 操作:
Debug:调试按钮
- 显示执行点(Show Execution Point,
Alt + F10
):- 如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行。
- 步过(Step Over,
F8
):- 一行一行地往下走,如果这一行上有方法不会进入方法。
- 步入(Step Into,
F7
):- 如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法。
- 强制步入(Force Step Into,
Alt + Shift + F7
):- 能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。
- 步出(Step Out,
Shift + F8
):- 从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值。
- 运行到光标处(Run to Cursor,
Alt + F9
):- 你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。
- 评估表达式(Evaluate Expression,
Alt + F8
)- 表达式不仅可以是算数计算,也可以是一般变量、参数,还可以是方法;
- 在计算表达式的框里,可以改变变量的值,这样就能能很方便去调试各种值的情况;
Debug:服务按钮
- 重新运行(
Ctrl + F5
) - 修改运行配置(
Ctrl + F5
) - 恢复程序(Resume Program,
F9
):向下执行程序,直到下一个断点。 - 暂停程序(Pause Program)
- 停止程序(Stop 'xxx',
Ctrl + F2
) - 查看断点(View Breakpoints,
Ctrl + Shift + F8
) - 静音断点(Mute Breakpoints):使所有断点失效(变为灰色)
- 此时,按 F9 则可以直接运行完程序;
- 如果只想使某一个断点失效,可以在断点上右键取消“Enabled”;
IDEA 打包流程
步骤:
- 打开“项目结构”(
Ctrl + Alt + Shift + S
); - 构建工件:
- Jar 包测试:
IDEA 设置:代码模板
实时模板
设置:
使用示例:
- psvm 或 main:
- 输入:
public class Test { psvm }
- 效果:
public class Test { public static void main(String[] args) { } }
- sout:
- 输入:
public class Test { public static void main(String[] args) { sout } }
- 效果:
public class Test { public static void main(String[] args) { System.out.println(); } }
后缀补全
设置:
使用示例:
- xxx.sout:
- 输入:
public class Test { public static void main(String[] args) { "你好".sout } }
- 效果:
public class Test { public static void main(String[] args) { System.out.println("你好"); } }
- 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、若“构建”失败,则取消“调试/运行”。 即:想要“调试/运行”当前类,就必须确保所有类都没有错误。十分不方便。
通过以下两种方式可以解决:
- 运行前不构建
- 构建,无错误检查
- 都只对当前类有效,需要配置类的“运行/调试配置”
设置:“运行前不构建”
如此:可直接“调试/运行”类,而不进行“构建” 【没有“构建”过程,在右下角“通知”无任何提示】
“运行/调试配置”:
- 选择配置的类;
- 在“运行”栏,点击“修改选项”:勾选 Java 下的“运行前不构建”;
设置:“添加启动前任务”:“构建,无错误检查”
如此:可在“构建”过程中,不检查类的错误信息 【仍有“构建”过程,在右下角“通知”提示:编译耗时、找到的“错误/警告”】
“运行/调试配置”:
P.S.:编译单个类
如此:仅“编译”单个类,不会提示其他类错误
步骤:
- (在编辑区,将光标定位到需要的类下):
- 在导航栏“构建”:点击“重新编译”;
IDEA:设置 Maven“从本地缓存中获取配置信息”
创建 Maven 项目时,有一些模板信息默认从远程仓库下载获取,在网络状况不太好时,较为不便。
使用“-DarchetypeCatalog=internal”(用于设置从本地缓存中获取配置信息):
- 如果设置了这个参数:第一次从远程拿,以后从本地拿。【要求第一次使用 Maven 必须联网】
IDEA:为项目添加依赖项
方法一:通过“依赖搜索窗口”
步骤:
- 打开“pom.xml”文件;
- 使用
Alt
+Insert
,并选择“添加依赖项”; - 在“依赖项窗口”:
- 上侧:搜索栏,输入关键字;
- 左侧:结果列表,点击依赖,并选择版本;
- 右侧:显示软件包详情(包括:仓库、项目站点、文档、自述文件等);
- 点击“添加”;
- 加载 Maven 变更;
方法一:通过“依赖项模板”
步骤:
- 打开“pom.xml”文件;
- 使用
Alt
+Insert
,并选择“依赖项模板”; - 在模板中分别输入相关内容;【有代码提示,但较慢】
- 加载 Maven 变更;
IDEA:更新 Maven 仓库索引
Maven 仓库索引,用于在“为项目添加依赖项”时,提供代码提示、结构搜索。【如上节所示】
为 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”。 由于网络原因,无法连接到该远程仓库。
解决:
- 方式一:为该仓库配置国内可用的镜像。
- 方式二:设置代理:
- “
Ctrl + Alt
+S
”-> ... ->“Maven”->“importing”在“VM options for importer”项:添加“-DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=10800
”;
- 如果使用 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”