maven settings.xm详解

settings.xml详解

###1. 前言
setting.xml是maven中设置默认本地仓库、中央仓库、镜像仓库、插件仓库、代理的地方,是一个全局配置。先介绍一下基本概念

  • 本地仓库
    即缓存maven项目的各类依赖组件的目录;
  • 中央仓库
    一个公用的库,存放了各类开源的组件,默认maven项目的依赖都会去该仓库下载依赖项的pom.xml和jar包;
  • 镜像仓库
    可以理解为中央仓库的备机,一般当中央仓库不可达时或者不稳定时则配置镜像仓库屏蔽中央仓库。
  • 插件仓库
    类似中央仓库,插件也是jar包,所以本质和中央仓库没有什么区别,只是逻辑上概念不一样。
  • 代理
    就是maven构建过程中需要访问互联网,如果主机不可直达外网,则需要配置代理访问外网。

2. settings.xml的详细介绍

2.1. 一级元素介绍

这里只介绍了我们平常会用的配置,对于、<pluginGroups/>、没有列出。

<settings>
   <localRepository>localRepository>
   <profiles>profiles>
   <activeProfiles>activeProfiles>
   <mirrors>mirrors>
   <proxies>proxies>
   <servers>servers>
settings>
  • localRepository
    该配置中用以设置本地仓库的路径,在该路径下缓存中央仓库依赖项。
    /usr/local/maven/repository/
  • profiles
    该项用以配置多组maven的中央仓库、插件仓库以及他们的使用时机。
  • activationProfiles
    profiles中存在多组配置,该项用以配置自动生效的配置项。
<activeProfiles>
  <activeProfile>id_of_profileactiveProfile>
activeProfiles>
  • mirrors
    当某个中央仓库不稳定或者不可达时,在该配置项中配置
  • proxies
    配置maven使用的代理
  • servers
    配置仓库、部署服务器的密令参数,有些仓库需要密令,另外项目部署到多台服务器时也需要密令,这里用以配置服务器密令。

2.2. profiles

<profiles>
    <profile>
	  <id>testid>
		
		<activation>activation>
		
		<repositories>repositories>
		
		<pluginRepository>pluginRepository>
    profile>
profiles>
  • id
    配置的唯一标志
  • activation
    配置激活的条件
<activation>
    <activeByDefault>trueactiveByDefault>
	<file>
	    
	    <exits>file_name_2exits>
		
		<mssing>file_name_2mssing>
	 file>
	
	<jdk>1.8jdk>
	
	<os>
	    
	    <arch>x86-64arch>
		
		<family>Linuxfamily>
		
		<name>Centosname>
		
		<version>7.0version>
	os>
	
	<property>
	   <name>helloname>
	   <value>worldvalue>
	property>
activation>
  • repositories
    配置仓库
<repositories>
    <repository>
	    
	  <id>centralid>
		<name>the central reponame>
		
		<url>https://repo.maven.apache.org/maven2/url>
		
		<releases>
		    
		    <enable>trueenable>
			
			<updatePolicy>alwaysupdatePolicy>
      
			<checksumPolicy>warnchecksumPolicy>
		releases>
    
		<snapshots>
		  <enabled>falseenabled>
		  <updatePolicy>dailyupdatePolicy>
      <checksumPolicy>errorchecksumPolicy>
		snapshots>
    
    <layout>defaultlayout>
	repository>
repositories>
  • pluginRepositories
    配置插件仓库

      <pluginRepository>
          <id>centralid>
          <name>central plugin repositoryname>
          <url>https://repo.maven.apache.org/maven2/url>
          <releases>
            <enabled>trueenabled>
            
            <updatePolicy>interval:720updatePolicy>
            <checksumPolicy>warnchecksumPolicy>
            <layout>defaultlayout>
          releases>
          <snapshots>snapshots>
      pluginRepository>
    

    2.3. mirrors

    配置仓库镜像

       <mirrors>
         <mirror>
           <id>mirror_testid>
           <name> mirror of central name>
           
           <url>http://maven.aliyun.com/nexus/content/groups/public/url>
           
           <mirrorOf>centralmirrorOf>
         mirror>
       

    2.4. proxies

    配置访问网络的代理, 内网请求也会被代理

    <proxies>
      <proxy>
        <id>web-proxyid>
        
        <protocol>httpprotocol>
        <username>rtxusername>
        <password>passwdpassword>
        <host>localhosthost>
        <port>8080port>
        
        <nonProxyHosts>*.oa.com | localhostnonProxyHosts>
        
        <active>trueactive>
      proxy>
    proxies>
    

    2.5. servers

    配置服务器登录命令,包括仓库和部署服务器

    <servers>
      <server>
        
        <id>centralid>
        <username>userusername>
        <password>passwdpassword>
        
        <privateKey>~/user/.ssh/id_rsaprivateKey>
        
        <phrase>prikey_passwordphrase>
        
        <filePermission>744filePermission>
        
        <directoryPermission>744directoryPermission>
        
        <configuration>configuration>
      server>
    servers>
    

    3. 拓展

    其实所有的settings.xml中的配置项都可以在其xsd(XML shcema definition)文件中找到对应的解释。下图展示了该文件中的部分内容,如果大家想详细了解一个maven配置文件的格式,可以查看对应的xsd文件了解。
    maven settings.xm详解_第1张图片

你可能感兴趣的:(maven settings.xm详解)