美文网首页
配置 maven 镜像和私服 (华为云/阿里云)

配置 maven 镜像和私服 (华为云/阿里云)

作者: acc8226 | 来源:发表于2020-05-01 00:51 被阅读0次

    相关网址
    Maven官方地址:https://maven.apache.org
    Maven搜索地址:http://mvnrepository.com

    配置华为云 mirror

    准备工作
    使用前请确保您已安装JDK及Maven。如果您尚未安装,可以点击下面链接下载安装:
    JDK官网下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html
    Maven加速地址:https://repo.huaweicloud.com/apache/maven/maven-3/

    使用说明: 手动在settings.xml文件中的mirrors节点中添加如下内容:

    <mirror>
                <id>huaweicloud</id>
                <name>华为云公共仓库</name>
                <mirrorOf>central</mirrorOf>
                <url>https://repo.huaweicloud.com/repository/maven/</url>
    </mirror>
    

    配置华为私有库依赖

    在servers节点中添加如下配置:(password从下载的settings.xml文件中获取)

        <server>
            <id>releases</id>
            <username>088dbeef3980f4050f6fc007779eab60_088dbef03980f2d21f98c007dcbde04f</username>
            <password>************</password>
        </server>
        <server>
            <id>snapshots</id>
            <username>088dbeef3980f4050f6fc007779eab60_088dbef03980f2d21f98c007dcbde04f</username>
            <password>************</password>
        </server>
    

    3.在profiles节点中添加如下配置

        <profile>
            <id>MyProfile</id>
            <repositories>
                <repository>
                    <id>releases</id>
                    <url>https://devrepo.devcloud.cn-north-4.huaweicloud.com/07/nexus/content/repositories/088dbeef3980f4050f6fc007779eab60_1_0/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </repository>
                <repository>
                    <id>snapshots</id>
                    <url>https://devrepo.devcloud.cn-north-4.huaweicloud.com/07/nexus/content/repositories/088dbeef3980f4050f6fc007779eab60_2_0/</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
        </profile>
    

    单独配置阿里云 mirror

    打开maven的配置文件(windows机器一般在maven安装目录的conf/settings.xml),在<mirrors></mirrors>标签中添加mirror子节点:

    <mirror>
                <id>aliyun-mirror</id>
                <name>阿里云公共仓库</name>
                <mirrorOf>central</mirrorOf>
                <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
    

    如果想使用其它代理仓库,可在<repositories></repositories>节点中加入对应的仓库使用地址。以使用spring代理仓为例:

    <repository>
        <id>spring</id>
        <url>https://maven.aliyun.com/repository/spring</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
    

    配置阿里云效私有库依赖

    1. 在mirrors节点中添加如下配置:(可选,使用阿里开源镜像站加速下载开源组件)
            <mirror>
                <id>mirror</id>
                <mirrorOf>central</mirrorOf>
                <url>https://maven.aliyun.com/repository/public</url>
            </mirror>
    
    1. 在settings.xml中添加认证信息
      在Maven的的默认settings.xml中找到servers的部分,添加一个server配置如下。
    <servers>
        <server>
            <id>rdc-releases</id>
            <username>***</username>
            <password>******</password>
        </server>
        <server>
            <id>rdc-snapshots</id>
            <username>***</username>
            <password>******</password>
        </server>
    </servers>
    

    3.在profiles节点添加如下配置, 其中 repository 是顺序搜索下载包的.

    <profile>
                <id>rdc-private-repo</id>
                <repositories>
                    <repository>
                        <id>rdc-releases</id>
                        <url>https://repo.rdc.aliyun.com/repository/78947-release-CfzLQ7/</url>
                        <releases>
                            <enabled>true</enabled>
                        </releases>
                        <snapshots>
                            <enabled>false</enabled>
                        </snapshots>
                    </repository>
                    <repository>
                        <id>rdc-snapshots</id>
                        <url>https://repo.rdc.aliyun.com/repository/78947-snapshot-XtuBsZ/</url>
                        <releases>
                            <enabled>false</enabled>
                        </releases>
                        <snapshots>
                            <enabled>true</enabled>
                        </snapshots>
                    </repository>
                </repositories>
                <pluginRepositories>
                    <pluginRepository>
                        <id>rdc-releases</id>
                        <url>https://repo.rdc.aliyun.com/repository/78947-release-CfzLQ7/</url>
                        <releases>
                            <enabled>true</enabled>
                        </releases>
                        <snapshots>
                            <enabled>false</enabled>
                        </snapshots>
                    </pluginRepository>
                    <pluginRepository>
                        <id>rdc-snapshots</id>
                        <url>https://repo.rdc.aliyun.com/repository/78947-snapshot-XtuBsZ/</url>
                        <releases>
                            <enabled>false</enabled>
                        </releases>
                        <snapshots>
                            <enabled>true</enabled>
                        </snapshots>
                    </pluginRepository>
                </pluginRepositories>
            </profile>
    
    1. 制品上传配置
      配置好了settings.xml后,在代码库根目录下的pom.xml加入以下配置:
    <!-- 需要发布二方包 则打开下列的配置 -->
    <distributionManagement>
        <repository>
            <id>rdc-releases</id>
            <url>https://repo.rdc.aliyun.com/repository/78947-release-CfzLQ7/</url>
        </repository>
        <snapshotRepository>
            <id>rdc-snapshots</id>
            <url>https://repo.rdc.aliyun.com/repository/78947-snapshot-XtuBsZ/</url>
        </snapshotRepository>
    </distributionManagement>
    

    然后运行以下命令即可将制品推送到私有仓库中:

    $ mvn clean deploy -DskipTests
    

    Maven中-DskipTests和-Dmaven.test.skip=true的区别
    在使用mvn package进行编译、打包时,Maven会执行src/test/java中的JUnit测试用例,有时为了跳过测试,会使用参数-DskipTests和-Dmaven.test.skip=true,这两个参数的主要区别是:

    -DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。
    -Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。

    关于 mirror 的说明

    虽然mirrors可以配置多个子节点,但是它只会使用其中的一个节点,即默认情况下配置多个mirror的情况下,只有第一个生效,只有当前一个mirror无法连接的时候,才会去找后一个;而我们想要的效果是:当a.jar在第一个mirror中不存在的时候,maven会去第二个mirror中查询下载,但是maven不会这样做!

    关于 properties 的说明

    properties
    作用:对应profile的扩展属性列表。
    maven属性和ant中的属性一样,可以用来存放一些值。这些值可以在pom.xml中的任何地方使用标记${X}来使用,这里X是指属性的名称。属性有五种不同的形式,并且都能在settings.xml文件中访问。

    <!-- 
      1. env.X: 在一个变量前加上"env."的前缀,会返回一个shell环境变量。例如,"env.PATH"指代了$path环境变量(在Windows上是%PATH%)。 
      2. project.x:指代了POM中对应的元素值。例如: <project><version>1.0</version></project>通过${project.version}获得version的值。 
      3. settings.x: 指代了settings.xml中对应元素的值。例如:<settings><offline>false</offline></settings>通过 ${settings.offline}获得offline的值。 
      4. Java System Properties: 所有可通过java.lang.System.getProperties()访问的属性都能在POM中使用该形式访问,例如 ${java.home}。 
      5. x: 在<properties/>元素中,或者外部文件中设置,以${someVar}的形式使用。
     -->
    
    <properties>
      <user.install>${user.home}/our-project</user.install>
    </properties>
    

    配置了 阿里和华为云配置的综合案例

    <?xml version="1.0" encoding="UTF-8"?>
    <settings
        xmlns="http://maven.apache.org/SETTINGS/1.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
        <mirrors>
            <mirror>
                <id>tencentyun-mirror</id>
                <name>腾讯云公共仓库</name>
                <mirrorOf>central</mirrorOf>
                <url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
            </mirror>
        </mirrors>
        <profiles>
            <profile>
                <id>my-profile</id>
                <properties>
                    <my.repo.url>---------YOUE_URL---------</my.repo.url>
                </properties>
                <repositories>
                    <repository>
                        <id>my-repo</id>
                        <url>${my.repo.url}</url>
                        <snapshots>
                            <enabled>true</enabled>
                        </snapshots>
                    </repository>
                </repositories>
                <pluginRepositories>
                    <pluginRepository>
                        <id>my-repo</id>
                        <url>${my.repo.url}</url>
                        <snapshots>
                            <enabled>true</enabled>
                        </snapshots>
                    </pluginRepository>
                </pluginRepositories>
            </profile>
        </profiles>
        <activeProfiles>
            <activeProfile>my-profile</activeProfile>
        </activeProfiles>
    </settings>
    

    tips: 查看当前处于激活状态的profile

    mvn help:active-profiles
    

    指定使用某个配置文件执行Maven命令

    mvn -s <filepath> <goal>
    mvn -s ~/.m2/settings_local.xml clean deploy
    

    检查当前Maven环境启用的文件

    mvn help:effective-settings
    

    打印所有可用的环境变量和Java系统属性

    mvn help:system
    

    相关地址

    https://mirrors.huaweicloud.com/

    参考

    https://blog.csdn.net/nthack5730/article/details/82385124

    相关文章

      网友评论

          本文标题:配置 maven 镜像和私服 (华为云/阿里云)

          本文链接:https://www.haomeiwen.com/subject/auxzwhtx.html