maven setting多仓库配置方式

 更新时间:2024年05月06日 10:32:35   作者:Mr-Wanter  
这篇文章主要介绍了maven setting多仓库配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

前言

maven setting 通常公司都有私 服地址,但不是所有包私 服上都有,这时就要用阿里云或者其他地址去拉包。

那么我们可以直接设置setting 使其拉包时第一个地址拉取不到自动到第二个地址拉取以此类推可设置多个仓库地址进行补充。

一 、setting文件

<?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">

<localRepository>D:\software\dev\apache-maven-3.6.3\Repositories</localRepository>
  <pluginGroups></pluginGroups>
  <proxies></proxies>
  <servers></servers>
  <mirrors></mirrors>

  <profiles>
    <profile>
      <id>aliyun</id> 
      <repositories>
        <repository>
          <id>aliyun</id> 
          <url>https://maven.aliyun.com/repository/public</url> 
          <releases>
            <enabled>true</enabled>
          </releases> 
          <snapshots>
            <enabled>true</enabled> 
            <updatePolicy>always</updatePolicy>
          </snapshots>
        </repository>
      </repositories>
    </profile>
	<profile>
		<id>private</id>
		<repositories>
			<repository>
				<id>maven-releases</id>
				<name>User Porject Release</name>
				<url>http://私服 地址/nexus/repository/maven-releases/</url>
				<snapshots>
					<enabled>false</enabled>
				</snapshots>
				<releases>
					<enabled>true</enabled>
				</releases>
			</repository>
			<repository>
				<id>maven-snapshots</id>
				<name>User Porject Snapshot</name>
				<url>http://私服 地址/nexus/repository/maven-snapshots/</url>
				<snapshots>
					<enabled>true</enabled>
					<updatePolicy>always</updatePolicy>
				</snapshots>
			</repository>
			<!-- 也可以把阿里云等仓库地址直接在这里补充 -->
			<repository>
				<id>com.e-iceblue</id>
				<name>e-iceblue</name>
				 <url>http://repo.e-iceblue.cn/repository/maven-public/</url>
			</repository>
		</repositories>
	</profile>
<!--    <profile>-->
<!--      <id>repo1</id>-->
<!--      <repositories>-->
<!--        <repository>-->
<!--          <id>repo1</id>-->
<!--          <url>https://repo1.maven.org/maven2</url>-->
<!--          <releases>-->
<!--            <enabled>true</enabled>-->
<!--          </releases>-->
<!--          <snapshots>-->
<!--            <enabled>true</enabled>-->
<!--            <updatePolicy>always</updatePolicy>-->
<!--          </snapshots>-->
<!--        </repository>-->
<!--      </repositories>-->
<!--    </profile>-->
<!--    <profile>-->
<!--      <id>repo2</id>-->
<!--      <repositories>-->
<!--        <repository>-->
<!--          <id>repo2</id>-->
<!--          <url>https://repo2.maven.org/maven2</url>-->
<!--          <releases>-->
<!--            <enabled>true</enabled>-->
<!--          </releases>-->
<!--          <snapshots>-->
<!--            <enabled>true</enabled>-->
<!--            <updatePolicy>always</updatePolicy>-->
<!--          </snapshots>-->
<!--        </repository>-->
<!--      </repositories>-->
<!--    </profile>-->
  </profiles>

  <activeProfiles>
    <activeProfile>aliyun</activeProfile>
    <activeProfile>private</activeProfile>
<!--  <activeProfile>repo1</activeProfile>-->
<!--  <activeProfile>repo2</activeProfile>-->
    </activeProfiles>
</settings>

二、其他问题

1.maven 默认有一个setting文件,如果我们的setting文件有很多,而默认setting中的mirror 直接指定了仓库路径,此时无论引用哪个setting文件,都会首先到默认setting内指定的仓库中拉取。

如下图所示,我的默认setting文件如此设置后,我指定了另外的setting文件,但是他会去D:\software\dev\apache-maven-3.6.3\Repositories\hlj路径下寻包

寻找不到直接报错

Could not find artifact xxx in public (file://D:\software\dev\apache-maven-3.6.3\Repositories\hlj)

最好只保留一个setting文件

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java实现断点续传功能的示例代码

    Java实现断点续传功能的示例代码

    这篇文章主要为大家详细介绍了如何利用Java语言实现网络资源的断点续传功能,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的可以了解一下
    2022-10-10
  • java实现LFU算法的示例代码

    java实现LFU算法的示例代码

    LFU(Least Frequently Used)算法根据数据的历史访问频率来淘汰数据,其核心思想是“如果数据过去被访问多次,那么将来被访问的频率也更高”,本文为大家整理了Java实现LFU算法的示例代码,需要的可以参考下
    2023-11-11
  • JFreeChart简单实现光滑曲线绘制

    JFreeChart简单实现光滑曲线绘制

    这篇文章主要为大家详细介绍了JFreeChart简单实现光滑曲线的绘制,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Netty中的心跳检测机制详解

    Netty中的心跳检测机制详解

    这篇文章主要介绍了Netty中的心跳检测机制详解,Netty 是 基于 TCP 协议开发的,在四层协议 TCP 协议的实现中也提供了 keepalive 报文用来探测对端是否可用,TCP 层将在定时时间到后发送相应的 KeepAlive 探针以确定连接可用性,需要的朋友可以参考下
    2023-12-12
  • Java Unsafe 类的讲解

    Java Unsafe 类的讲解

    这篇文章主要给大家分享了 Java Unsafe 类的讲解,文章围绕Unsafe 类的相关资料展开详细内容,具有一定的参考价值需要的朋友可以参考一下
    2021-11-11
  • java分割字符串多种方法(附例子)

    java分割字符串多种方法(附例子)

    这篇文章主要给大家介绍了关于java分割字符串多种方法的相关资料,Java中有多种方法可以实现字符串分割,文中将每张方法都给出了代码示例,需要的朋友可以参考下
    2023-10-10
  • java对ArrayList排序代码示例

    java对ArrayList排序代码示例

    本文通过代码示例给大家介绍java对arraylist排序,代码简洁易懂,感兴趣的朋友一起学习吧
    2015-11-11
  • java 线性表接口的实例详解

    java 线性表接口的实例详解

    这篇文章主要介绍了java 线性表接口的实现实例详解的相关资料,希望通过本能帮助到大家,需要的朋友可以参考下
    2017-09-09
  • Spring Boot中利用JavaMailSender发送邮件的方法示例(附源码)

    Spring Boot中利用JavaMailSender发送邮件的方法示例(附源码)

    这篇文章主要介绍了Spring Boot中利用JavaMailSender发送邮件的方法示例, 相信使用过Spring的众多开发者都知道Spring提供了非常好用的JavaMailSender接口实现邮件发送。在Spring Boot的Starter模块中也为此提供了自动化配置。需要的朋友可以参考借鉴。
    2017-02-02
  • 解决Eclipse add external jars运行出现java.lang.NoClassDefFoundError的方法

    解决Eclipse add external jars运行出现java.lang.NoClassDefFoundErro

    本篇文章对Eclipse add external jars导致运行出现java.lang.NoClassDefFoundError的解决方法进行了详细的分析介绍。需要的朋友参考下
    2013-05-05

最新评论