• maven setting 配置仓库,pom.xml中repository不起作用


    问题描述

    最近做java项目,需要使用公司自己搭建的maven仓库,但是有些包公司的仓库中没有,导致下载失败。

    项目环境

    jdk:1.8

    maven:3.5

    问题原因分析

    maven的setting文件配置信息如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <settings>
        <localRepository>/data/repository</localRepository>
        <servers>
            <server>
                <id>releases</id>
                <username>123</username>
                <password>123</password>
            </server>
            <server>
                <id>snapshots</id>
                <username>123</username>
                <password>123</password>
            </server>
        </servers>
        <mirrors>
            <!--注意标红的部分-->
            <mirror>
                <id>nexus</id>
                <mirrorOf>*</mirrorOf>
                <url>http://server.dev.****.com:8000/nexus/content/groups/public/</url>
            </mirror>
        </mirrors>
        <profiles>
            <profile>
                <id>nexus</id>
                <repositories>
                    <repository>
                        <id>central</id>
                        <url>http://central</url>
                        <releases><enabled>true</enabled></releases>
                        <snapshots><enabled>true</enabled></snapshots>
                    </repository>
                </repositories>
                <pluginRepositories>
                    <pluginRepository>

    pom.xml中的配置:

    <repositories>
    			<repository>
    			<id>aliyun-repos</id>
    			<url>https://maven.aliyun.com/repository/public</url>
    			<releases><enabled>true</enabled></releases>
    			<snapshots><enabled>false</enabled></snapshots>
    		</repository>
            <repository>
    		    <id>sonatype-repos-s</id>
    			<name>Sonatype Repository</name>
    			<url>https://oss.sonatype.org/content/repositories/snapshots</url>
    			<releases><enabled>false</enabled><updatePolicy>always</updatePolicy></releases>
    			<snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
    		</repository>
    	</repositories>
    

      

    我需要下载的包的仓库地址在pom文件中配置了,就是 https://oss.sonatype.org/content/repositories/snapshots,这个仓库,

    但是为什么下载的时候没有起作用呢?问题就出在setting中如下部分:

    <mirror>
          <id>nexus</id>
          <mirrorOf>*</mirrorOf>
          <url>http://server.dev.****.com:8081/nexus/content/groups/public/</url>
    </mirror> 

    mirrorof标签,这个标签如果设置为*,就说明整个工程只能使用settings中配置的地址,这个就是问题的根源。

    解决办法

      在settings文件的mirrorof标签中内容改成(!sonatype-repos-s,*),括号里面的内容,不包括括号,这样做的意思是,!sonatype-repos-s意思是sonatype-repos-s这个仓库排除在外,依然把公司的仓库作为唯一仓库,这样就可以使用settings文件中配置的仓库和pom.xml配置的仓库都生效。

    -------------------------------------------------------------分割线---------------------------------------------------------------

    番外话:上面的问题产生的根本原因是,我们平时做项目时一般都是复制粘贴,根本不知道有些配置项什么意思,出了问题就百度,但是有时百度查不到时,还是要老老实实的从原理入手。

  • 相关阅读:
    那么如何设计接口才能做到幂等?
    使用FluentValidation和MediatR实现接口请求验证
    虎年 云原生落地技术趋势
    使用 Dapr 缩短软件开发周期,提高工作效率
    .NET 诞生已20周年,您的 .NET 技能是否还停留在2010 年?
    Mono创始人 Miguel de Icaza今天离开微软
    在 Azure 上构建和部署云原生应用程序和容器化应用程序
    2021 中国.NET开发者峰会近50场热点技术专题揭秘
    Blazor 和 TypeScript 互操作工具库
    Dapr集成之GRPC 接口
  • 原文地址:https://www.cnblogs.com/gunduzi/p/11715726.html
Copyright © 2020-2023  润新知