Maven镜像地址配置示例大全
Maven镜像地址配置示例大全|java|软件编程——建站教学网 (studyweb.cn)
最近在准备项目架构时,虽然自己已经又了私服,通过私服进行仓库的管理,但是由于网速的限制原因,又想在项目环境迁移时可以快速的构建并启动或者快速更新,之前项目开发的工作中,使用了一个国外的一个仓库,拉取了一些坏的包,导致了一些异常,后来搞了好几天才解决掉(解决办法:当然是更换仓库镜像地址咯!!!),所以花费了些时间收集并整理了这些 maven镜像地址。
Maven 镜像地址大全
1、阿里的镜像地址
|
1
2
3
4
5
6
|
<mirror> <id>alimaven</id> <name>aliyun maven</name> <mirrorOf>central</mirrorOf></mirror> |
2、华为的镜像地址
|
1
2
3
4
5
6
|
<mirror> <id>huaweicloud</id> <name>mirror from maven huaweicloud</name> <mirrorOf>central</mirrorOf></mirror> |
使用华为Maven中央仓库时,需要在servers节点增加一个server子节点,内容如下:
|
1
2
3
4
5
|
<server> <id>huaweicloud</id> <username>anonymous</username> <password>devcloud</password></server> |
经过实际的生产使用后,貌似阿里的要比华为的要快些!
3、ibiblio 镜像地址(这个也比较快的呃)
|
1
2
3
4
5
6
|
<mirror> <id>ibiblio</id> <name>Mirror from Maven ibiblio</name> <mirrorOf>central</mirrorOf></mirror> |
4、repo1.maven.org 镜像地址
|
1
2
3
4
5
6
|
<mirror> <id>central</id> <name>Maven Repository Switchboard</name> <mirrorOf>central</mirrorOf></mirror> |
5、repo1.maven.apache.org 镜像地址
|
1
2
3
4
5
6
|
<mirror> <id>central</id> <name>Maven Repository Switchboard</name> <mirrorOf>central</mirrorOf></mirror> |
6、repo2 镜像地址
|
1
2
3
4
5
6
|
<mirror> <id>repo2</id> <name>Mirror from Maven Repo2</name> <mirrorOf>central</mirrorOf></mirror> |
7、spring.io 镜像地址
|
1
2
3
4
5
6
|
<mirror> <id>sprintio</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name></mirror> |
8、UK 镜像地址
|
1
2
3
4
5
6
|
<mirror> <id>ui</id> <name>Mirror from UK</name> <mirrorOf>central</mirrorOf></mirror> |
9、JBoos 镜像地址
|
1
2
3
4
5
6
|
<mirror> <id>jboss-public-repository-group</id> <name>JBoss Public Repository Group</name> <mirrorOf>central</mirrorOf></mirror> |
8、Google 镜像地址
|
1
2
3
4
5
6
|
<mirror> <id>google</id> <name>google maven</name> <mirrorOf>central</mirrorOf></mirror> |
9、Maven china镜像地址
|
1
2
3
4
5
6
|
<mirror> <id>maven.net.cn</id> <name>Mirror from Maven in china</name> <mirrorOf>central</mirrorOf></mirror> |
10、Maven oschina镜像地址
|
1
2
3
4
5
6
|
<mirror> <id>CN</id> <name>OSChinaCentral</name> <mirrorOf>central</mirrorOf></mirror> |
在收集的这些Maven镜像地址中,有两个需要x墙的,如果说x墙比较麻烦,用闸门自己的都够用了,目前自己使用的 Maven 镜像地址有 阿里 和 ibiblio 两个镜像地址,关于为啥不用华为的,因为才出来不久,还在持续的维护和稳定进行中,后期如果发现其它比较好用的 Maven 镜像地址,会及时更新上来的!
Maven 镜像地址配置示例
搜集了那么多的 Maven 镜像地址,下面说说如何配置 Maven 镜像地址,进入 Maven 的配置文件 conf 文件中,找到 settings.xml 文件,如下图:

编辑该配置文件,找到 <mirror></mirror> 节点,例如,使用 阿里的maven 镜像地址,则在该节点下输入如下内容:
|
1
2
3
4
5
6
7
8
|
<mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <mirrorOf>central</mirrorOf> </mirror></mirrors> |
如下图:
五、Maven的生命周期
Maven 有以下三个标准的生命周期:clean:项目清理的处理、default(或 build):项目部署的处理、site:项目站点文档创建的处理
1)Clean 生命周期
当我们执行 mvn post-clean 命令时,Maven 调用 clean 生命周期,它包含以下阶段:
pre-clean:执行一些需要在clean之前完成的工作
clean:移除所有上一次构建生成的文件
post-clean:执行一些需要在clean之后立刻完成的工作
2)Default (Build) 生命周期
这是 Maven 的主要生命周期,被用于构建应用,包括下面的 23 个阶段:
validate(校验):校验项目是否正确并且所有必要的信息可以完成项目的构建过程。
initialize(初始化):初始化构建状态,比如设置属性值。
generate-sources(生成源代码):生成包含在编译阶段中的任何源代码。
process-sources(处理源代码):处理源代码,比如说,过滤任意值。
generate-resources(生成资源文件):生成将会包含在项目包中的资源文件。
process-resources (处理资源文件):复制和处理资源到目标目录,为打包阶段最好准备。
compile(编译):编译项目的源代码。
process-classes(处理类文件):处理编译生成的文件,比如说对Java class文件做字节码改善优化。
generate-test-sources(生成测试源代码):生成包含在编译阶段中的任何测试源代码。
process-test-sources(处理测试源代码):处理测试源代码,比如说,过滤任意值。
generate-test-resources(生成测试资源文件):为测试创建资源文件。
process-test-resources(处理测试资源文件):复制和处理测试资源到目标目录。
test-compile(编译测试源码):编译测试源代码到测试目标目录.
process-test-classes(处理测试类文件):处理测试源码编译生成的文件。
test(测试):使用合适的单元测试框架运行测试(Juint是其中之一)。
prepare-package(准备打包):在实际打包之前,执行任何的必要的操作为打包做准备。
package(打包):将编译后的代码打包成可分发格式的文件,比如JAR、WAR或者EAR文件。
pre-integration-test(集成测试前):在执行集成测试前进行必要的动作。比如说,搭建需要的环境。
integration-test(集成测试):处理和部署项目到可以运行集成测试环境中。
post-integration-test(集成测试后):在执行集成测试完成后进行必要的动作。比如说,清理集成测试环境
verify (验证):运行任意的检查来验证项目包有效且达到质量标准。
install(安装):安装项目包到本地仓库,这样项目包可以用作其他本地项目的依赖
deploy(部署):将最终的项目包复制到远程仓库中与其他开发者和项目共享。
3)Site 生命周期
Maven Site 插件一般用来创建新的报告文档、部署站点等。
pre-site:执行一些需要在生成站点文档之前完成的工作
site:生成项目的站点文档
post-site:执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
site-deploy:将生成的站点文档部署到特定的服务器上
Maven包括的这三个标准生命周期中,其中clean和默认生命周期是开发中最常使用的,而Site生命周期一般可能项目经理比较感兴趣,可以生成项目站点,包括依赖信息,开发人员信息,版本信息等等,开发中一般不用;
当执行【mvn compile】命令时,这里的compile是build生命周期中的一个阶段,它会默认执行在compile阶段之前的所有阶段如validate、initialize、generate-sources、process-sources、generate-resources、process-resources一直到最后执行compile编译程序。如果执行【mvn package】,则在package阶段之前的所有阶段默认都会执行;但是不同生命周期的阶段不受影响,也就是当我们执行package命令时,并不会执行Clean生命周期中的三个阶段;当然我们也可以同时执行不同生命周期中的不同阶段命令如【mvn clean package】这种形式,注意先后顺序即可。
五、Maven中的插件
当我们执行mvn clean命令时,真正帮我们实现清除target目录的所有生成构建其实是通过插件来完成的,Maven的生命周期是抽象的,实际需要插件来完成任务,这一过程是通过将插件的目标(goal)绑定到生命周期的具体阶段(phase)来完成的。如:将maven-compiler-plugin插件的compile目标绑定到default生命周期的compile阶段,完成项目的源代码编译:注意所有Maven的pom文件都继承于一个超父pom文件,不管你有没有显示声明这个父文件,当你在子pom文件中声明了和父插件一样的插件以后,将会覆盖父插件的属性。一个插件通常可以完成多个任务,每一个任务就叫做插件的一个目标。如执行mvn install命令时,调用的插件和执行的插件目标如下:

Maven对一些生命周期的阶段(phase)默认绑定了插件目标,因为不同的项目有jar、war、pom等不同的打包方式,因此对应的有不同的绑定关系,其中针对default生命周期的jar包打包方式的绑定关系如下:
用户可以根据需要将任何插件目标绑定到任何生命周期的阶段,如:将maven-source-plugin的jar-no-fork目标绑定到default生命周期的package阶段,这样,以后在执行mvn package命令打包项目时,在package阶段之后会执行源代码打包,生成如:ehcache-core-2.5.0-sources.jar形式的源码包。
当然我们也可以通过插件来跳过阶段,如当我们执行【mvn package】命令时,也会执行Test阶段启动程序来检查程序是否能够正常启动,但有的时候我们不想在打包程序的时候执行测试阶段,而是跳过他,那么我们就可以通过插件来(当然我们也可以通过其它的方式跳过测试,插件的方式只是其中一种,另外的方式在后面的文章中进行介绍),如下:
<!-- maven 打包时跳过测试 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
六、一个简单的pom文件
以下Pom文件为创建一个SpringBoot项目生成的默认文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 简单说一下每个部分的作用 -->
<!--继承的父pom -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.zlc</groupId>
<artifactId>springbootdemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springbootdemo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<!-- 项目依赖-->
<!-- 一个查询依赖的网址: https://mvnrepository.com/-->
<dependencies>
<!-- web依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- lombok依赖 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--单元测试依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<!-- Maven插件-->
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
七、Maven文件参考大全
可关注微信公众号【为码以梦】回复【Maven】获取PDF文件

浙公网安备 33010602011771号