查看“IDEA:Maven相关”的源代码
←
IDEA:Maven相关
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[category:IDEA]] == 关于:一些功能的疑惑 == 【时间: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 ——【默认的本地仓库地址(默认的配置文件中配置)】 步骤: # 打开“系统设置”('''<code>Ctrl + Alt</code> + <code>S</code>''')的 Maven 页: # 修改以下内容: ## '''Maven 配置''': ##: [[File:IDEA:Maven 设置.png|600px]] ##“'''设置原型目录'''”:<span style="color: blue">“-DarchetypeCatalog=internal”</span> ##* 位于:“运行程序(Runner)”->“VM 选项(VM Options)” ##“'''忽略 SSL 证书验证'''”:<span style="color: blue">“-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true”</span> ##* 位于:“正在导入(Importing)”->“VM 选项(VM Options)” === 说明:“设置原型目录” === 由于:每次创建 Maven 项目都会从远程仓库(Central)下载原型目录(archetype)。 于此,可以使用此配置,用于'''加速 Maven 项目创建'''。 : [[File:IDEA:Maven设置:设置原型目录.png|600px]] === 说明:“忽略 SSL 证书验证” === 对于:使用某些“'''不支持 http 下载,只支持 https'''”的远程仓库(如:阿里云),可以使用此配置。 : [[File:IDEA:Maven 设置:忽略 SSL 证书验证.png|600px]] === 关于“新项目设置” === 如果不修改“新项目设置”下的 Maven 相关项,那么每次在创建 Maven 项目时都会去采用“系统默认”的 Maven 配置,而非“全局配置”的 Maven 配置。 步骤: # 打开“新项目设置”(“文件”->“新项目设置”->“新项目的设置”)的 Maven 页; #: [[File:IDEA:新项目设置.png|300px]] # 修改内容:(参照本节头) == 更新远程仓库索引 == Maven 仓库索引,用于在“为项目添加依赖项”时,提供代码提示、结构搜索。【如上节所示】 IDEA 的 Maven 索引位置:“C:\Users\eijux\AppData\Local\JetBrains\IntelliJIdea2022.1\Maven\Indices” : [[File:IDEA:Maven更新仓库索引.png|600px]] 为 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 仓库; === 另一个思路:使用 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]]''' == 使用:为项目添加依赖项 == 一般可以通过 <span style="font-size: 18px">'''[https://mvnrepository.com/ mvnrepository 网站]'''</span> 搜索软件包的依赖配置信息,然后直接复制到项目的“pom.xml”文件中。 如果要通过 IDEA 添加依赖项,有以下两种方式。(需要 IDEA 的 Maven 索引) === 方法一:通过“依赖搜索窗口” === : [[File:IDEA:添加依赖项.png|600px]] 步骤: # 打开“pom.xml”文件; # 使用 '''<code>Alt</code> + <code>Insert</code>''',并选择“'''添加依赖项'''”; # 在“依赖项窗口”: ## 上侧:搜索栏,输入关键字; ## 左侧:结果列表,点击依赖,并选择版本; ## 右侧:显示软件包详情(包括:仓库、项目站点、文档、自述文件等); ## 点击“添加”; # 加载 Maven 变更; === 方法二:通过“依赖项模板” === : [[File:IDEA:添加依赖项_2.png|400px]] 步骤: # 打开“pom.xml”文件; # 使用 '''<code>Alt</code> + <code>Insert</code>''',并选择“'''依赖项模板'''”; # 在模板中分别输入相关内容;【有代码提示,但较慢】 # 加载 Maven 变更; == 使用:创建 Maven 项目 == 创建 Maven 项目,即:从 '''Archetype''' (原型、模板)创建一个 Maven 项目。 开发人员可以在此基础上进行扩展开发。 === 关于“-DarchetypeCatalog”参数 === IDEA 创建 Maven 项目的实质:根据 maven '''archetype'''(原型)的配置,执行'''<syntaxhighlight lang="badh" inline>mvn archetype:generate</syntaxhighlight>'''命令。 该命令执行时,需要指定一个“'''archetype-catalog.xml'''”文件(约为 12 M)。 参数“<span style="color: blue">'''-DarchetypeCatalog'''</span>”,用于指定“archetype-catalog.xml”文件的获取方式: # '''remote''':,即,从“'''远程'''”获取;——【即:“中央仓库”的“[http://repo1.maven.org/maven2/archetype-catalog.xml http://repo1.maven.org/maven2/archetype-catalog.xml]”路径】 #* (默认) #* 下载速度很慢,容易导致创建过程卡住。 # '''internal''':从“'''内部'''”获取;——【即:“maven-archetype-plugin”内置的 archetypeCatalog 文件】 #* (建议) # '''local''':即,从“'''本地'''”获取;——【即:设置的本地仓库中】 #* 需要[https://repo1.maven.org/maven2/archetype-catalog.xml 下载“archetype-catalog.xml”](右键保存),至本地(“${localRepository})\org\apache\maven\archetypes\archetype-catalog\<版本>”)。 # 使用“在 IDEA 中添加的指定路径”: #: [[File:IDEA:Maven 设置:Archetype目录.png|600px]] == 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 窗口的依赖项中,部分依赖下有红线提示,但问题窗口并没有关于项目的任何错误信息。 : [[File:IDEA:Maven窗口的红线.png|600px]] 解决,在 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. : [[File:IDEA:Maven运行Clean错误.png|600px]] 解决: :“<code>Ctrl + Alt</code> + <code>S</code>”-> ... ->“Maven”->“importing”:在“VM options for importer”项,添加: : <syntaxhighlight lang="xml">-Xmx4096M</syntaxhighlight> : [[File:IDEA:Maven运行Clean错误:解决.png|600px]]
返回至“
IDEA:Maven相关
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
笔记
服务器
数据库
后端
前端
工具
《To do list》
日常
阅读
电影
摄影
其他
Software
Windows
WIKIOE
所有分类
所有页面
侧边栏
站点日志
工具
链入页面
相关更改
特殊页面
页面信息