maven配置文件详解


settings.xml

本篇文章主要对maven中setting.xml配置文件进行解释

1.声明规范

<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">

2.localRepository

    
    <localRepository>/opt/repositorylocalRepository>

3.interactiveMode

    
    <interactiveMode>trueinteractiveMode>

4.usePluginRegistry

    
    <usePluginRegistry>falseusePluginRegistry>

5.offline

    
    <offline>falseoffline>

6.pluginGroups

    
    <pluginGroups>
      
      <pluginGroup>org.codehaus.mojopluginGroup>
    pluginGroups>

7.proxies

    
    <proxies>
      
      <proxy>
       
       <id>myproxyid>
       
       <active>trueactive>
       
       <protocol>httpprotocol>
       
       <host>proxy.somewhere.comhost>
       
       <port>8080port>
       
       <username>proxyuserusername>
       
       <password>somepasswordpassword>
       
       <nonProxyHosts>*.google.com|ibiblio.orgnonProxyHosts>
      proxy>
    proxies>

8.servers

    
    <servers>
      
      <server>
       
       <id>server001id>
       
       <username>my_loginusername>
       
       <password>my_passwordpassword>
       
       <privateKey>${usr.home}/.ssh/id_dsaprivateKey>
       
       <passphrase>some_passphrasepassphrase>
       
       <filePermissions>664filePermissions>
       
       <directoryPermissions>775directoryPermissions>
      server>
    servers>

9.mirrors

    
    <mirrors>
      
      <mirror>
       
       <id>planetmirror.comid>
       
       <name>PlanetMirror Australianame>
       
       <url>http://downloads.planetmirror.com/pub/maven2url>
       
       <mirrorOf>centralmirrorOf>
      mirror>
    mirrors>

10.profiles

    
    <profiles>
      
      <profile>
       
       <id>testid>

11.Activation

    
       <activation>
    
        <activeByDefault>falseactiveByDefault>
    
        <jdk>1.5jdk>
    
        <os>
    
         <name>Windows XPname>
    
         <family>Windowsfamily>
    
         <arch>x86arch>
    
         <version>5.1.2600version>
        os>
    
        <property>
    
         <name>mavenVersionname>
    
         <value>2.0.3value>
        property>
    
        <file>
    
         <exists>${basedir}/file2.propertiesexists>
    
         <missing>${basedir}/file1.propertiesmissing>
        file>
       activation>

12.Repositories

    <repository> 
               <id>nexusid> 
               <name>local private nexusname> 
               <url>http://localhost:8081/nexus/content/groups/publicurl> 
               <releases><enabled>trueenabled>releases>
                <snapshots><enabled>trueenabled>snapshots>
       repository>
    repositories>
    
    <repositories>
    
        <repository>
    
         <id>codehausSnapshotsid>
    
         <name>Codehaus Snapshotsname>
    
         <releases>
    
          <enabled>falseenabled>
    
          <updatePolicy>alwaysupdatePolicy>
    
          <checksumPolicy>warnchecksumPolicy>
         releases>
    
         <snapshots>
          <enabled/><updatePolicy/><checksumPolicy/>
         snapshots>
    
         <url>http://snapshots.maven.codehaus.org/maven2url>
    
         <layout>defaultlayout>
        repository>
       repositories>
    
       <pluginRepositories>
     
              <pluginRepository>           
         <releases>      
          <enabled/><updatePolicy/><checksumPolicy/>
         releases>
         <snapshots>
          <enabled/><updatePolicy/><checksumPolicy/>
         snapshots>
         <id/><name/><url/><layout/>
              pluginRepository>
            pluginRepositories>
      profile>
     profiles>

13.activeProfiles

    默认配置:
    <activeProfiles> 
        <activeProfile>devactiveProfile> 
        
    activeProfiles>
    配置解释:
    
     <activeProfiles>
        
        <activeProfile>env-testactiveProfile>
     activeProfiles>
    settings>

配置示例:

<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>/opt/repository/mavenlocalRepository>
  

  

  
  <pluginGroups>
    
  pluginGroups>

  
  <proxies>
    
  proxies>

  
  <servers>
    

    
 <server>
        <id>nexusid>
        <username>adminusername>
        <password>admin123password>
    server>
    <server>
        <id>releasesid>
        <username>adminusername>
        <password>anonymous123password>
    server>
    <server>
        <id>snapshotsid>
        <username>adminusername>
        <password>anonymous123password>
    server>
        <server>
            <id>thirdpartyid>
            <username>adminusername>
            <password>anonymous123password>
        server>
  servers>

  
  <mirrors>
    
        <mirror>
            <id>nexusid>
            <name>internal nexus repositoryname>
            <url>http://10.0.0.241:9999/repository/maven-public/url> 
            <mirrorOf>*mirrorOf> 
        mirror> 
  mirrors>

  
  <profiles>
    

    
<profile> 
<id>apatchid> 
<repositories> 
<repository> 
<id>re-apatchid> 
<name>remote apatchname> 
<url>http://inno.starhubdev.com/nexus/content/groups/public/url>
<releases>
<enabled>trueenabled>
releases>
<snapshots>
<enabled>trueenabled> 
snapshots>
repository>
repositories> 
profile> 
<profile> 
<id>ibiblioid> 
<repositories> 
<repository> 
<id>re-ibiblioid> 
<name>remote ibiblioname> 
<url>https://nexus.sourcesense.com/nexus/content/repositories/public/url> 
<releases>
<enabled>trueenabled>
releases>
<snapshots>
<enabled>trueenabled>
snapshots>
repository> 
repositories> 
profile> 
<profile> 
<id>redevid> 
<repositories> 
<repository> 
<id>re-nexusid> 
<name>remote nexusname> 
<url>http://repository.sonatype.org/content/groups/public/url> 
<releases>
<enabled>trueenabled>
releases>
<snapshots>
<enabled>trueenabled>
snapshots>
repository> 
repositories> 
profile> 
<profile>
            <id>devid>
            <repositories>
                <repository>
                    <id>nexusid>
                    <url>http://10.0.0.241:9999/nexus/content/groups/publicurl>
                    <releases><enabled>trueenabled>releases>
                    <snapshots><enabled>trueenabled>snapshots>
                repository>
            repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>nexusid>
                    <url>http://10.0.0.241:9999/nexus/content/groups/publicurl>
                    <releases><enabled>trueenabled>releases>
                    <snapshots><enabled>trueenabled>snapshots>
                pluginRepository>
            pluginRepositories>
    profile>
  profiles>
  
settings>