maven的setting.xml配置文件详解

setting.xml配置文件

maven的配置文件settings.xml存在于两个地方:

1.安装的地方:${M2_HOME}/conf/settings.xml

2.用户的目录:${user.home}/.m2/settings.xml

前者又被叫做全局配置,对操作系统的所有使用者生效;后者被称为用户配置,只对当前操作系统的使用者生效。如果两者都存在,它们的内容将被合并,并且用户范围的settings.xml会覆盖全局的settings.xml。

Maven安装后,用户目录下不会自动生成settings.xml,只有全局配置文件。如果需要创建用户范围的settings.xml,可以将安装路径下的settings复制到目录${user.home}/.m2/。Maven默认的settings.xml是一个包含了注释和例子的模板,可以快速的修改它来达到你的要求。

全局配置一旦更改,所有的用户都会受到影响,而且如果maven进行升级,所有的配置都会被清除,所以要提前复制和备份${M2_HOME}/conf/settings.xml文件,一般情况下不推荐配置全局的settings.xml。

注:基本上就是setting.xml就是在这位置,有时候会在其他地方修改一个setting.xml文件,但是在idea中或是其他的软件中指定的新的位置,往往不能够起作用,还是建议把用的setting.xml文件放在用户的目录中。


   
   
  

   
   
	  
	
    
    
	
    
    
     
     usr/local/maven
    
    
	  
	
    
    
	
    
    
     
     true
    
    
	  
	
    
    
	
    
    
	
    
    
	
    
    
     
     false
    
    
	  
	
    
    
	
    
    
	
    
    
     
     false
    
    
	  
	
    
    
	
    
    
	
    
    
	
    
    
	
    
    
		  
		
     
     
		
     
     
      
      org.codehaus.mojo
     
     
		 
	
    
    
	  
	
    
    
	
    
    
		  
		
     
     
		
     
     
			  
			
      
      
			
      
      
       
       myproxy
      
      
			  
			
      
      
			
      
      
       
       true
      
      
			  
			
      
      
			
      
      
       
       http://…
      
      
			  
			
      
      
			
      
      
       
       proxy.somewhere.com
      
      
			  
			
      
      
			
      
      
       
       8080
      
      
			  
			 
      
      
			
      
      
       
       proxyuser
      
      
			  
			
      
      
			
      
      
       
       somepassword
      
      
			  
			
      
      
			
      
      
       
       *.google.com|ibiblio.org
      
      
			  
		
     
     
		 
	
    
    
	  
	
    
    
	
    
    
		  
		
     
     
		
     
     
			  
			
      
      
			
      
      
       
       server001
      
      
			  
			
      
      
			
      
      
       
       my_login
      
      
			  
			
      
      
			
      
      
       
       my_password
      
      
			  
			
      
      
			
      
      
			
      
      
       
       ${usr.home}/.ssh/id_dsa
      
      
			  
			
      
      
			
      
      
       
       some_passphrase
      
      
			  
			
      
      
			
      
      
			
      
      
       
       664
      
      
			  
			
      
      
			
      
      
       
       775
      
      
			  
			
      
      
			
      
      
			  
		
     
     
		 
	
    
    
	  
	
    
    
	
    
    
		  
		
     
     
		
     
     
			  
			
      
      
			
      
      
       
       planetmirror.com
      
      
			  
			
      
      
			
      
      
       
       PlanetMirror Australia
      
      
			  
			
      
      
			
      
      
       
       http://downloads.planetmirror.com/pub/maven2
      
      
			  
			
      
      
			
      
      
			
      
      
       
       central
      
      
			  
		
     
     
		 
	
    
    
	  
	
    
    
	
    
    
	
    
    
	
    
    
	
    
    
		  
		
     
     
		
     
     
			  
			
      
      
			
      
      
       
       test
      
      
			  
			
      
      
			
      
      
			
      
      
			
      
      
			
      
      
				  
				
       
       
				
       
       
         false 
       
				  
				
       
       
				
       
       
         1.7 
       
				  
				
       
       
				
       
        
         
        
          Windows XP 
         
         
        
          Windows 
         
         
        
          x86 
         
         
        
          5.1.2600 
         
       
				  
				
       
       
				
       
       
				
       
        
         
        
          mavenVersion 
         
         
        
          2.0.3 
         
       
				  
				
       
       
				
       
       
				
       
        
         
        
          /usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/ 
         
         
        
          /usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/ 
         
       
				   
			
      
      
			  
			 
      
      
			
      
      
			
      
       
			
      
      
			
      
      
			
      
      
			
      
      
			
      
      
			
      
      
			
				
       
       
				
       
       
         usr/local/winner/jobs/maven-guide 
       
				   
			
      
      
			  
			
      
      
			
      
      
				  
				
       
       
				
       
        
         
        
          codehausSnapshots 
         
         
        
          Codehaus Snapshots 
         
         
         
          
         
           false 
          
          
          
         
           always 
          
          
          
         
           warn 
          
         
         
         
         
          
          
          
         
         
        
          http://snapshots.maven.codehaus.org/maven2 
         
         
         
        
          default 
         
       
				   
			
      
      
			  
			
      
      
			
      
      
			
      
      
			
      
      
				  
				
       
       
				
       
        
         
          
          
          
         
         
          
          
          
         
         
         
         
         
       
				        
			
      
      
			  
			
      
      
			
      
      
			
      
      
			
      
      
			
      
      
				    
				
       
       
         env-test 
       
				   
			
      
      
			  
		
     
     
		 
	
    
    
	  

   
   

上面的配置文件对各个节点的含义及作用都有注解。实际应用中,经常使用的是<localRepository>、<servers>、<mirrors>、<profiles>有限几个节点,其他节点使用默认值足够应对大部分的应用场景。


<profile>节点

在仓库的配置一节中,已经对setting.xml中的常用节点做了详细的说明。在这里需要特别介绍一下的是<profile>节点的配置,profile是maven的一个重要特性。

<profile>节点包含了激活(activation)仓库(repositories)插件仓库(pluginRepositories)属性(properties)共四个子元素元素。profile元素仅包含这四个元素是因为他们涉及到整个的构建系统,而不是个别的项目级别的POM配置。

profile可以让maven能够自动适应外部的环境变化,比如同一个项目,在Linux下编译linux的版本,在win下编译win的版本等。一个项目可以设置多个profile,也可以在同一时间设置多个profile被激活(active)的。自动激活的 profile的条件可以是各种各样的设定条件,组合放置在activation节点中,也可以通过命令行直接指定。如果认为profile设置比较复杂,可以将所有的profiles内容移动到专门的 profiles.xml 文件中,不过记得和pom.xml放在一起。

activation节点是设置该profile在什么条件下会被激活,常见的条件有如下几个:

1.   os

判断操作系统相关的参数,它包含如下可以自由组合的子节点元素

message - 规则失败之后显示的消息

arch - 匹配cpu结构,常见为x86

family - 匹配操作系统家族,常见的取值为:dos,mac,netware,os/2,unix,windows,win9x,os/400等

name - 匹配操作系统的名字

version - 匹配的操作系统版本号

display - 检测到操作系统之后显示的信息

2.   jdk

检查jdk版本,可以用区间表示。

3.   property

检查属性值,本节点可以包含name和value两个子节点。

4.   file

检查文件相关内容,包含两个子节点:exists和missing,用于分别检查文件存在和不存在两种情况。

如果settings中的profile被激活,那么它的值将覆盖POM或者profiles.xml中的任何相等ID的profiles

如果想要某个profile默认处于激活状态,可以在<activeProfiles>中将该profile的id放进去。这样,不论环境设置 如何,其对应的 profile都会被激活



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven是一种流行的项目管理工具,它使用XML格式的配置文件来定义项目的构建和依赖关系。其中,Mavensettings.xml文件是用来配置Maven的全局设置的。 settings.xml文件中有几个重要的标签需要详细解释: 1. <localRepository>标签:用于指定本地仓库的路径。本地仓库是一个存储项目依赖包的地方,当Maven构建项目时,它会从本地仓库中查找依赖包,如果没有找到,则从远程仓库下载。通过指定<localRepository>标签,可以更改本地仓库的默认路径。 2. <mirrors>标签:用于配置镜像仓库。Maven的中央仓库通常是项目依赖包下载的默认来源。但由于某些原因,我们可能无法直接连接到中央仓库,或者下载速度很慢。使用<mirrors>标签,可以配置镜像仓库,从而加快依赖包的下载速度。 3. <profiles>标签:用于配置不同环境下的构建参数。在不同的开发环境中,可能需要使用不同的构建配置。通过<profiles>标签,可以定义不同的构建配置,并在构建时选择相应的配置。这样可以保证在不同环境中的构建一致性。 4. <servers>标签:用于配置Maven的认证信息。有些私有仓库可能需要认证才能访问。通过<servers>标签,可以配置私有仓库的URL、用户名和密码,以便Maven能够访问私有仓库。 5. <proxies>标签:用于配置代理服务器。如果项目所在的网络环境需要通过代理服务器才能访问外部网络资源,可以使用<proxies>标签配置代理服务器的相关信息,以便Maven能够访问远程仓库。 这些标签是settings.xml文件中的主要配置项,通过合理设置这些标签,可以灵活地配置Maven的工作方式,并满足项目构建和依赖管理的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值