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文件
在这里插入图片描述

posted @ 2023-02-20 17:39  CharyGao  阅读(411)  评论(0)    收藏  举报