前言
本章内容重点:了解如何将Maven集成到IDE(如IntelliJ IDEA或Eclipse)中,以及使用过程中遇到的常见的问题、如何解决,如何避免等,可以大大提高开发效率。

查看pom文件,可以看到我们定义的maven项目,项目的Maven坐标:groupId,artifactId,version.
点右边maven ,可以看到maven 对项目的生命周期管理
Maven的生命周期是对所有的构建过程进行抽象和统一,包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤。
具体来说,Maven的生命周期包含以下阶段:
清理(Clean):清理上一次构建生成的文件,包括编译的类文件和测试报告等。
初始化(Initialize):为构建过程准备环境,设置项目的属性,下载依赖项等。
编译(Compile):使用Java编译器将Java源代码编译成字节码。
测试(Test):使用测试框架运行单元测试和集成测试,验证代码的正确性和可靠性。
打包(Package):将项目打包成可分发的格式,例如JAR文件。
部署(Deploy):将打包后的项目复制到指定的目标仓库,以供其他项目使用。
选中 clean ,鼠标右键,选择 Run Maven Build

以此类推,可以执行Maven生命周期的任何一个阶段。


pom.xml文件定义的仓库,它包含了项目的坐标信息和依赖项配置。而settings.xml文件是Maven的全局配置文件,用于配置Maven的运行参数、镜像仓库等信息。settings.xml文件中,可以定义多个仓库的配置,每个仓库都有一个唯一的id标识。这些仓库的配置信息可以在Maven的运行过程中被使用到,例如在解析依赖项时。settings.xml文件中,可以通过设置元素来指定镜像仓库的优先级。该元素包含一个或多个元素,每个``元素指定一个镜像仓库的id、url和镜像名称等信息。通过调整这些元素的顺序和数量,可以改变Maven在解析依赖项时搜索的顺序和优先级。pom.xml中也可以通过元素和元素来指定项目的依赖项仓库和插件仓库的优先级。这些元素的配置会覆盖settings.xml文件中的配置。pom.xml和settings.xml文件都可以配置仓库的优先级,而pom.xml文件的配置会覆盖settings.xml文件的配置。问题原因:
1、国内访问maven默认远程中央镜像特别慢
2、用阿里的镜像替代远程中央镜像
3、大部分jar包都可以在阿里镜像中找到,部分jar包在阿里镜像中没有,需要单独配置镜像
期望目标:
在maven中配置一主一副两个镜像,大部分jar直接通过主镜像可以找到,部分特殊jar在主镜像中找不到时,自动去副镜像中寻找。
maven的全局配置文件setting.xml
1、配置了本地仓库:
<localRepository>D:/maven/repositorylocalRepository>
2、配置了中央仓库的镜像
<mirror>
<id>nexus-aliyunid>
<mirrorOf>centralmirrorOf>
<name>Nexus aliyunname>
<url>http://maven.aliyun.com/nexus/content/groups/publicurl>
mirror>
<mirror>
<id>central-repositoryid>
<mirrorOf>*mirrorOf>
<name>Central Repositoryname>
<url>http://central.maven.org/maven2/url>
mirror>
知识点
mirrors镜像的先后顺序
mirrorOf为什么要配置为central
mirrors镜像的先后顺序
在 Maven 的 mirrors 标签中,镜像的先后顺序是有一定影响的。当配置了多个镜像时,Maven 会按照你配置的顺序逐个尝试从这些镜像仓库下载依赖项。
如果你希望 Maven 先从特定的镜像仓库下载依赖项,你可以将该镜像的配置放在 mirrors 标签中靠前的位置。反之,如果你希望 Maven 最后从特定的镜像仓库下载依赖项,你可以将该镜像的配置放在 mirrors 标签中靠后的位置。
举个例子,如果你有两个镜像,分别是 mirror1 和 mirror2,你希望 Maven 先从 mirror1 下载依赖项,然后再从 mirror2 下载依赖项,那么你可以这样配置:
<mirrors>
<mirror>
<id>mirror1id>
<url>http://mirror1.example.com/repo/url>
<mirrorOf>centralmirrorOf>
mirror>
<mirror>
<id>mirror2id>
<url>http://mirror2.example.com/repo/url>
<mirrorOf>centralmirrorOf>
mirror>
mirrors>
在这个例子中,Maven 会先尝试从 mirror1 下载依赖项,如果失败了,才会尝试从 mirror2 下载。
mirrorOf为什么要配置为central
将 `` 配置为 central 的目的是为了镜像中央仓库(Central Repository)的所有内容。当 Maven 构建项目时,它会从中央仓库下载所需的依赖项。通过配置镜像,可以将对中央仓库的请求转发到另一个镜像仓库,从而加速依赖项的下载。
在 标签中配置镜像时,可以指定一个或多个镜像,每个镜像有一个唯一的标识符(`id`)和一个指向镜像仓库的 URL(`url`)。 元素用于指定要代理的仓库。当配置为 central 时,表示该镜像将代理中央仓库的所有内容。
使用镜像配置可以解决一些网络问题,例如中央仓库访问缓慢或不可用。通过将 `` 配置为 central,可以将请求转发到另一个镜像仓库,从而加速依赖项的下载。此外,如果中央仓库出现故障,可以使用镜像继续构建项目,确保 Maven 的构建过程不会受到影响。
总之,将 `` 配置为 central 可以提高 Maven 构建的效率和可靠性。
常用工具:
人工处理:
以上为大概思路,具体细节参考第五章
