maven配置多仓库的方法

目录

  • 改掉原有的maven仓库地址,让maven从公网上摘取jar包下载,方便、快捷。
  • 添加一个类似结构的仓库配置,这样的话就不切来切去的了,一劳永逸。
  • 按照最简单的方式,新增一个仓库地址,随时切换。
  • 无法拉取包的困惑?你可能发现,你的maven无法拉取 SNAPSHOT 包,然而包明明就在那里!
  • 另附一个idea maven配置的方法:

刚接触maven就是在公司里配置好的,所以一直以来使用都没毛病,所以一直没有去动这些固有的东西。但是,后来把公司的电脑拿回家之后,发现有的东西就搞不起来了。原因也看一下就明白了,因为在公司的时候用的是公司的maven私服,所以回家后,用不了也是正常。但是,真的脱离了公司,自己就不能工作了吗?不可能吧。难道一下开源工具都必须要依赖于公司的网络?这明显是不合理的。那么,就扯出本次文章的意义了,在家里,自然是要公有的maven仓库了,那么,怎样配置maven仓库才能让自己用起来顺心呢?

1. 改掉原有的maven仓库地址,让maven从公网上摘取jar包下载,方便、快捷。

原私有配置示例如下:

<?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
       | The path to the local repository maven will use to store artifacts.
       |
       | Default: ${user.home}/.m2/repository -->     
<localRepository>
${user.home}/.m2/repository
</localRepository>
<!--pluginGroups></pluginGroups-->    
<!--proxies></proxies-->     
<servers>     
	<server>          
		<id>releases</id>
		<username>admin</username>          
		<password>123</password>    
	</server>      
	<server>           
		<id>snapshots</id>          
		<username>admin</username>         
		<password>123</password>      
	</server>     
	</servers>
 	<pluginRepositories>
 		<pluginRepository>
			<id>mypublic</id>
			<name>Public</name>
			<url>http://test.nexus.com/nexus/content/groups/public/</url>       
		</pluginRepository>    
	</pluginRepositories>      
	<mirrors>
 		<mirror>
    		<id>central</id>
   			<name>internal</name>
   			<url>http://test.nexus.com/nexus/content/groups/public/</url>
    		<mirrorOf>central</mirrorOf>       
		</mirror>      
	</mirrors>    
	<profiles>      
		<profile>
  			<id>nexus</id>
  			<!--Enable snapshots for the built in central repo to direct -->
  			<!--all requests to nexus via the mirror -->
  			<repositories>
  				<repository>
  					<id>central</id>
					<url>http://central</url>
					<releases><enabled>true</enabled></releases>
  					<snapshots>
						<enabled>true</enabled>
						<updatePolicy>always</updatePolicy>
					</snapshots>
  				</repository>
			</repositories>
			<pluginRepositories>              
				<pluginRepository>
  					<id>central</id>
					<url>http://central</url>                 
					<releases><enabled>true</enabled></releases>
  					<snapshots><enabled>true</enabled></snapshots>
  				</pluginRepository>            
			</pluginRepositories>
		</profile>
 	</profiles> 
	<activeProfiles>   
	<!--make the profile active all the time -->   
	<activeProfile>nexus</activeProfile>
	</activeProfiles>
</settings>
  

如果想直接把私有的地方干掉,那么,这是最快的,直接把mirror的url改掉就行了,如:

<mirrors>        
	<mirror>
    	<id>central</id>
    	<name>internal</name>        
		<url>http://maven.aliyun.com/nexus/content/groups/public/</url>      
		<!-- <url>http://test.nexus.com/nexus/content/groups/public/</url> -->
    	<mirrorOf>central</mirrorOf>       
	</mirror>     
</mirrors>
 

当然了,到需要的地方,再把这个地址改回来就可以了,这可能是改动最小的方法了。但是也很恼火的一种配置方式,因为你要不时地记得切换(谁有那闲心)!!!

2. 添加一个类似结构的仓库配置,这样的话就不切来切去的了,一劳永逸。
相当于添加了多仓库,如下:

<mirrors>    
	<!-- 再添加一个mirror, 注意mirrorsOf 为 * -->  
	<mirror>      
		<id>alimaven</id>      
		<name>aliyun maven</name> 
		<url>http://maven.aliyun.com/nexus/content/groups/public/</url>       
		<mirrorOf>*</mirrorOf>   
	</mirror>
</mirrors>
	<repositories>
		<!-- 添加一个 repository -->   
		<repository>       
			<id>alimaven</id>       
		<url>http://alimaven</url>      
		<releases><enabled>true</enabled></releases>       
		<snapshots>           
			<enabled>true</enabled>           
			<updatePolicy>always</updatePolicy>        
		</snapshots>   
	</repository>
</repositories>

这样的话,就不用再切换了。但是,这会导致一种情况,在某环境不可用时,maven下载jar将会很慢,严重影响心情,所以,其实是不建议这么干的。

3. 按照最简单的方式,新增一个仓库地址,随时切换。
不用去添加mirror了,直接以url的形式,配置到reponsitory里即可,如下:

<repository>    
	<!-- 直接添加一个 repository,在 activeProfiles 里加上此id 即可 -->    
	<id>repo1</id>
   	<name>org.maven.repo1</name>   
	<layout>default</layout>   
	<url>https://repo1.maven.org/</url>   
	<snapshots>        
		<enabled>false</enabled>   
	</snapshots>
</repository>  
<activeProfiles>
	<activeProfile>nexus</activeProfile>    
	<!-- 添加此属性,以便激活repo1的配置 -->
	<activeProfile>repo1</activeProfile> 
</activeProfiles>

这样,既不影响原来的结构,也不影响现在使用,在家的时候,可以将私有仓库注释掉,以提高访问速度。注意:最后一个 activeProfiles 的属性是必须的,否则你可能发现你改了配置,然而并没有什么卵用!

<activeProfiles>    
		<!-- 放心,此处的 nexus 是多个仓库的配置 -->    
		<activeProfile>nexus</activeProfile>
</activeProfiles>

4. 无法拉取包的困惑?你可能发现,你的maven无法拉取 SNAPSHOT 包,然而包明明就在那里!
是的,出于安全的考虑,maven 默认是不会去使用 snapshot 包的,所以,如果你有需要使用 snapshot 包(很多公司可能大量使用),那么你就需要配置 SNAPSHOT 为允许了!

  
<repository>          
		<id>central</id>
		<url>http://central</url>         
	<releases>
		<enabled>true</enabled>         
	</releases>
	<!-- 如下开启 snapshots 功能 -->
	<snapshots>
		<enabled>true</enabled>                
		<updatePolicy>always</updatePolicy>         
	</snapshots>    
</repository>

5. 另附一个idea maven配置的方法:
在这里插入图片描述
在这里插入图片描述
maven作为基础辅助工具,虽不需去深入的理解,也没有高深的技巧,但是作为没有处理过几个相关问题的同学,还是很有必要了解的。在处理问题的过程,一步步成长了。毕竟,资深工程师,没有解决过很多bug,是不能成为资深的。不要害怕今日的苦,你要相信明天,更苦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值