“IDEA:Maven相关”的版本间差异
跳到导航
跳到搜索
第171行: | 第171行: | ||
见:'''[[Maven:settings.xml示例#示例二:使用_nexus2/3]]''' | 见:'''[[Maven:settings.xml示例#示例二:使用_nexus2/3]]''' | ||
== | == 使用:为项目添加依赖项 == | ||
一般可以通过 <span style="font-size: 18px">'''[https://mvnrepository.com/ mvnrepository 网站]'''</span> 搜索软件包的依赖配置信息,然后直接复制到项目的“pom.xml”文件中。 | 一般可以通过 <span style="font-size: 18px">'''[https://mvnrepository.com/ mvnrepository 网站]'''</span> 搜索软件包的依赖配置信息,然后直接复制到项目的“pom.xml”文件中。 | ||
第197行: | 第197行: | ||
# 在模板中分别输入相关内容;【有代码提示,但较慢】 | # 在模板中分别输入相关内容;【有代码提示,但较慢】 | ||
# 加载 Maven 变更; | # 加载 Maven 变更; | ||
== 使用:创建 Maven 项目 == | |||
== FAQ == | == FAQ == |
2022年5月10日 (二) 01:57的版本
关于:一些功能的疑惑
【时间:2022/05/09 18:17:15】 【当前 IDEA 版本:2022.1】 【IDEA 本地 Maven 索引文件夹:“C:\Users\eijux\AppData\Local\JetBrains\IntelliJIdea2022.1\Maven\Indices”】
由于使用 IDEA 过程中,Maven 的一些设置、功能与 Eclipse 差异较大,对于其作于和相互影响不明。
处于好奇测试了一下,以下内容为总结,须待查看官网文档确认。
关于:依赖提示、依赖搜索
根据网上的相关搜索,更新 Maven 远程仓库的索引,应该是为“依赖提示”和“依赖搜索”提供支持, 但是实际测试发现:“更新索引”(甚至,本地文件中远程仓库索引存在与否),对于以上两者影响并不大。
通过测试:
- 依赖提示:(在 pom.xml 中编辑依赖项时,会有代码提示)
- 与网络:
- 有网时:联网搜索(无需代理),并提示;
- 无网时:使用搜索过的缓存,但搜索新内容则无提示;
- 与“更新索引”:无关。(删除本地索引文件后,仍可使用)
- 但更新索引之后,好像结果会更多???
- 与“settings.xml”:无关。(删除所有仓库及镜像设置后,仍可使用)
- 与网络:
- 依赖搜索:(在 pom.xml 中生成“添加依赖项”后,依赖项窗口的搜索框)
- 与网络:必须联网使用,无任何缓存;
- 与与“更新索引”:无关。(删除本地索引文件后,仍可使用)
- 与“settings.xml”:无关。(删除所有仓库及镜像设置后,仍可使用)
关于:不同的远程仓库
设置不同的远程仓库(settings.xml),主要是用于“解析依赖、下载依赖项”,并且对于“更新仓库索引”操作也有影响。
通过测试:
- AliMaven:
- “解析依赖、下载依赖项”:正常;
- “更新索引”操作:并不支持更新仓库索引的操作;
- Nexus2(本地):
- “解析依赖、下载依赖项”:正常;
- “更新索引”操作:支持更新仓库索引;
- 更新后无错误,但是 IDEA 本地 Maven 索引文件夹大小没有变化,不知道原因。
- Nexus3(本地):
- “解析依赖、下载依赖项”:正常;
- “更新索引”操作:支持更新仓库索引;
- 更新时:下载过程(700 M 左右)很快,但是索引处理(Processing indices)过程很长(十几分钟???);
- Nexus2、Nexus3 设置了代理保证到 Central 的网络。
Nexus3 本身不支持下载代理仓库的索引文件,但是 IDEA 通过 Nexus 3 仍能进行“更新索引”操作。 Nexus2 直接下载远程仓库的索引文件在 1.5 G 作用,但是通过 IDEA 更新索引的下载内容在 400 M 左右,本地文件大小在 700 M 左右。
关于:“更新索引”的作用
如上: 1、“更新索引”这一操作前后(前:移除索引文件;后:更新索引操作),对于“依赖提示、依赖搜索”并没有太大影响。 2、对于“解析依赖、下载依赖项”,也只是选用不同的远程仓库会有影响。
总结
如上:
- “依赖提示”、“依赖搜索”:仅与网络有关。(但从哪里搜索???)
- “解析依赖”、“下载依赖项”:仅与远程仓库设置(settings.xml)有关。
- “更新索引”操作:意义不明???
Maven 设置及说明
在 IDEA 中使用 Maven 前需要进行设置,以避免使用过程中的一些问题。 默认的 Maven 配置: 1、Maven 主路径:已捆绑(Maven3) ——【IDEA 自带的 Maven】 2、用户设置文件:${user.home}/.m2/settings.xml ——【默认的配置文件】 3、本地仓库:${user.home}/.m2/settings.xml/repository ——【默认的本地仓库地址(默认的配置文件中配置)】
步骤:
- 打开“系统设置”(
Ctrl + Alt
+S
)的 Maven 页: - 修改以下内容:
关于“新项目设置”
如果不修改“新项目设置”下的 Maven 相关项,那么每次在创建 Maven 项目时都会去采用“系统默认”的 Maven 配置,而非“全局配置”的 Maven 配置。
步骤:
说明:“从本地缓存获取”
对于: 1、创建 Maven 项目默认从远程仓库下载模板信息; 2、依赖项每次都从远程仓库下载; 3、防止网络问题连接不到中央仓库而报错; 的情况,可以使用此配置。 设置优先从本地缓存中获取资源(模板信息、JAR包),即:第一次(须联网)从远程获取,以后从本地获取。 作用: 1、创建 Maven 项目时,跳过联网下载模板文件; 2、
说明:“忽略 SSL 证书验证”
对于:使用某些“不支持 http 下载,只支持 https”的远程仓库(如:阿里云),可以使用此配置。
更新远程仓库索引
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”。 由于网络原因,无法连接到该远程仓库。
解决:
- 方式一:使用国内仓库或镜像。
- 方式二:设置代理:
- “
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.: 阿里云 Maven 仓库: 1、目前还未支持生成和下载 maven indexer 文件 2、不再支持 http 下载,只支持 https。 使用指南: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
使用:为项目添加依赖项
一般可以通过 mvnrepository 网站 搜索软件包的依赖配置信息,然后直接复制到项目的“pom.xml”文件中。
如果要通过 IDEA 添加依赖项,有以下两种方式。(需要 IDEA 的 Maven 索引)
方法一:通过“依赖搜索窗口”
步骤:
- 打开“pom.xml”文件;
- 使用
Alt
+Insert
,并选择“添加依赖项”; - 在“依赖项窗口”:
- 上侧:搜索栏,输入关键字;
- 左侧:结果列表,点击依赖,并选择版本;
- 右侧:显示软件包详情(包括:仓库、项目站点、文档、自述文件等);
- 点击“添加”;
- 加载 Maven 变更;
方法二:通过“依赖项模板”
步骤:
- 打开“pom.xml”文件;
- 使用
Alt
+Insert
,并选择“依赖项模板”; - 在模板中分别输入相关内容;【有代码提示,但较慢】
- 加载 Maven 变更;
使用:创建 Maven 项目
FAQ
为什么“${user.home}/.m2/repository”中有下载内容?
即使在 IDEA 全局配置中修改了 Maven 配置文件地址,即使 settings.xml 中指定本地仓库到了其他位置。 在“${user.home}/.m2/repository”下依然会时不时有新下载的依赖包。
这是因为:
- IDEA 的新项目设置,依然使用“系统默认”的 Maven 配置(配置文件“${user.home}/.m2/settings.xml”),而非“全局配置”的 Maven 配置;
- “${user.home}/.m2/settings.xml”中设置的本地仓库为“${user.home}/.m2/repository”。
Maven窗口的红线提示
在 Maven 窗口的依赖项中,部分依赖下有红线提示,但问题窗口并没有关于项目的任何错误信息。
解决,在 pom.xml 文件中:
- 剪掉对应依赖,加载 maven 变更;
- 贴上对应依赖,加载 maven 变更;
Maven 的 Clean 命令运行错误
双击 Mavne 窗口的 Clean 等命令时,收到错误信息: Error occurred during initialization of VM Unable to allocate 130176KB bitmaps for parallel garbage collection for the requested 4165632KB heap.
解决: