maven配置多仓库私服

本文介绍了在ApacheMaven中配置多个私服仓库的传统方法以及一种更优化的解决方案,即使用profiles来管理不同仓库,使得项目打包时可以根据需求灵活选择仓库,避免了对<mirrorOf>标签复杂设置的困扰。
摘要由CSDN通过智能技术生成

经常见我们除了需要官方的仓库以外,更多是配置了国内的阿里云公共仓库。但很多的企业会有自己的公共组件,两者会结合起来使用,就需要配置公司的私服。

而经常性的,我们会在 apache-maven-3.8.6\conf\settings.xml 中,标签中配置自己的仓库地址,这样的确起到了配置仓库的效果。

但是当我们在标签中配置多个mirror时,mirrorOf不能配置 . ,意思就是(根据mirrorOf和repository的id)匹配所有的库(repository),这样就是说如果你需要某个jar,他会从镜像地址去下载这个jar。不管你配置了多少个库,即使这些库的地址不一样,仍然会从镜像地址访问。
即:

<mirrorOf>*</mirrorOf> 
匹配所有仓库请求,即将所有的仓库请求都转到该镜像上

<mirrorOf>repo1,repo2</mirrorOf> 
将仓库repo1和repo2的请求转到该镜像上,使用逗号分隔多个远程仓库。 

<mirrorOf>*,!repo1</miiroOf> 
匹配所有仓库请求,repo1除外,使用感叹号将仓库从匹配中排除。

这样的配置就比较麻烦,正常情况下我们只需要在项目拉取完毕的时候执行一次就可以了。

下面就提供另外一种配置多仓库多私服的方式!

我们不在标签中配置了。直接全部注释掉,然后到最后的标签中,创建多个profile即可。如下:

<profiles>
  <!--  部分注释代码已去除。  -->
	  <profile>
	      <id>jdk-1.8</id>
	      <activation>
	      <activeByDefault>true</activeByDefault>
	        <jdk>1.8</jdk>
	      </activation>
	      <properties>
	       <maven.compiler.source>1.8</maven.compiler.source>
	     <maven.compiler.target>1.8</maven.compiler.target>
	     <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
	    </properties>
	  </profile>
	  <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>nexus</id>
	      <repositories>
	          <repository>
	              <id>nexus</id>
	              <url>https://nexus.xxx.cn/repository/maven-group-warehouse/</url>
	              <releases>
	                  <enabled>true</enabled>
	              </releases>
	              <snapshots>
	                  <enabled>true</enabled>
	                  <updatePolicy>always</updatePolicy>
	              </snapshots>
	          </repository>
	      </repositories>
	  </profile>
  </profiles>

这种情况下,我们直接打开idea工具,在配置号maven的情况下,在右侧的maven区域的Profiles里面,就会多出现aliyun和nexus两个选项,对应到上面配置文件中的id。此时,我们在按照项目打包的时候,就可以按照我们的需要,自行勾选一下对应的仓库即可,无论多少个私服都可以这样去配置。
在这里插入图片描述

部分非主要内容参考借用了: https://blog.csdn.net/u014641168/article/details/123862963

配置阿里云私服仓库,你可以按照以下步骤进行操作: 1. 首先,你需要搭建阿里云maven私服仓库。你可以使用阿里云提供的Maven仓库服务,或者自己搭建一个私服仓库。 2. 如果你选择使用阿里云的Maven仓库服务,你需要将以下URL添加到你的Maven配置文件中的<mirrors>标签中: <mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror> 这个配置将指定所有的仓库镜像使用阿里云的公共仓库。 3. 接下来,你可以手动上传本地的jar包到阿里云maven私服仓库。你可以使用以下命令将jar包上传到私服仓库: mvn deploy:deploy-file -DgroupId=<groupId> -DartifactId=<artifactId> -Dversion=<version> -Dpackaging=<packaging> -Dfile=<file> -Durl=<url> -DrepositoryId=<repositoryId> 其中,<groupId>是jar包的groupId,<artifactId>是jar包的artifactId,<version>是jar包的版本号,<packaging>是jar包的打包类型,<file>是要上传的jar包文件的路径,<url>是私服仓库的URL,<repositoryId>是私服仓库的ID。 4. 另外,你也可以通过使用IDEA自动上传本地项目到阿里云maven私服仓库。在IDEA中,你可以在项目的Maven设置中配置私服仓库的URL和凭据,然后使用Maven的deploy命令将项目上传到私服仓库。你可以在IDEA的Maven工具窗口中找到deploy命令。 5. 最后,要从阿里云私服仓库拉取maven依赖的jar包,你需要在项目的pom.xml文件中配置阿里云私服仓库的镜像URL。你可以添加以下代码到<pom>标签中: <repositories> <repository> <id>aliyunmaven</id> <url>https://maven.aliyun.com/repository/public</url> </repository> </repositories> 这将使Maven从阿里云私服仓库拉取jar包。 请注意,阿里云maven私服仓库有多个仓库,你需要根据你引入的jar包在阿里云仓库中的归属来决定是否需要添加新的仓库。你可以查看阿里云maven仓库的文档了解更多详情。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CloverAn

如果文章对你有帮助,感谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值