java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > maven setting多仓库配置

maven setting多仓库配置方式

作者: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文件

总结

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

您可能感兴趣的文章:
阅读全文