setting.xml設定説明


maven 2はmaven 1よりも構成するファイルが少なくpomに集中している.xmlとsettings.xmlで.まずsettingsについてお話しします.xml,settings.xmlはmavenにとってグローバルな構成に相当し、すべてのプロジェクトに使用されます.maven 2には2つのsettingsが存在する.xmlは、maven 2のインストールディレクトリconfの下にあり、グローバル構成として使用されます.チーム設定では、一貫した定義を維持することが重要であるため、maven 2/confの下のsettings.xmlはチーム共通のプロファイルとして使用されます.すべてのチームメンバーが同じ構成を持っていることを保証します.もちろん、各メンバーについては、ユーザ情報などの特殊なカスタム設定が必要であるため、別のsettings.xmlはローカル構成として使用されます.デフォルトの場所は${user.dir}/.m2/settings.xmlディレクトリ(${user.dir}はwindowsのユーザーディレクトリを指す).settings.xmlの基本構造は以下の通りである:xmlコード
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<settings xmlns=
"http://maven.apache.org/POM/4.0.0"

   
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0   


                               http://maven.apache.org/xsd/settings-1.0.0.xsd">   


  <localRepository/>   
  <interactiveMode/>   
  <usePluginRegistry/>   
  <offline/>   
  <pluginGroups/>   
  <servers/>   
  <mirrors/>   
  <proxies/>   
  <profiles/>   
  <activeProfiles/>   
</settings>   

いくつかの主要な構成要素を簡単に紹介する:localRepository:ローカルライブラリの保存位置、すなわちmaven 2の主要なjar保存位置を表し、デフォルトは${user.dir}/.m 2/repositoryは、別途設定する必要がある場合は、別のパスに変更します.offline:コンパイルするたびにリモートセンターライブラリを検索したくない場合はtrueに設定します.もちろん前提は、必要な依存パッケージをダウンロードしたことです.サーバのPOMのdistributionManagement要素は、開発ライブラリを定義します.しかしながら、特定のusernameおよびpwdはpomには使用できない.xmlですので、この構成でserver情報xmlコードを保存します.
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<servers>   
   <server>   
     <id>server001</id>   
     <username>my_login</username>   
     <password>my_password</password>   
     <privateKey>$
{

usr.home}

/.ssh/id_dsa</privateKey>   
     <passphrase>some_passphrase</passphrase>   
     <filePermissions>664</filePermissions>   
     <directoryPermissions>775</directoryPermissions>   
     <configuration></configuration>   
   </server>   
 </servers>    

id:serverのidは、distributionManagementライブラリidと一致するために使用され、重要です.username,password:このサーバにログインするためのユーザー名とパスワードprivateKey,passphrase:private keyの設定,passphrase file Permissions,directoryPermissions:ライブラリファイルまたはディレクトリの作成後にアクセス権を使用する必要があります.664と775 Mirrorsなどのunixファイルライセンスを参照してミラーライブラリを表し、他のライブラリxmlコードを追加するためにライブラリのミラーを指定します.
1
2
3
4
5
6
7
8
<mirrors>   
   <mirror>   
     <id>planetmirror.com</id>   
     <name>PlanetMirror Australia</name>   
     <url>http:
//downloads.planetmirror.com/pub/maven2</url>   


     <mirrorOf>central</mirrorOf>   
   </mirror>   
 </mirrors>   

id,name:ミラーurl:ミラーのurl mirrorOf:このミラーが指すサービスid Proxiesこの設定を区別するために使用され、主にセンターに直接アクセスできないライブラリユーザー構成に使用されます.xmlコード
1
2
3
4
5
6
7
8
9
10
11
12
13
<proxies>   
   <proxy>   
     <id>myproxy</id>   
     <active>true</active>   
     <protocol>http</protocol>   
     <host>proxy.somewhere.com</host>   
     <port>8080</port>   
     <username>proxyuser</username>   
     <password>somepassword</password>   
     <nonProxyHosts>*.google.com|ibiblio.org</nonProxyHosts>   
   </proxy>   
 </proxies>   
 


id:エージェントのフラグactive:エージェントprotocol,host,portをアクティブにするかどうか:protocol://host:portエージェントusername,password:ユーザー名とパスワードnonProxyHosts:エージェントを必要としないhost Profilesはpomに似ている.xmlのprofile要素は、主にactivation、repositories、pluginRepositories、properties要素が接触し始めたばかりの頃は、迷うかもしれませんが、実はmaven 2の中で比較的強力な機能です.文字通り、個性的な配置です.Profileを個別に定義しても有効ではありません.条件を満たすことでアクティブにする必要があります.repositoriesとpluginRepositoriesは、他の開発ライブラリとプラグイン開発ライブラリを定義します.チームにとって、自分の開発ライブラリがあるに違いない.この構成で定義できます.次の構成では、releaseパブリケーション用のローカル開発ライブラリを定義します.xmlコード
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<repositories>   
        <repository>   
          <id>repo-local</id>   
       <name>Internal    </name>   
       <url>http:
//192.168.0.2:8082/repo-local</url>   


          <releases>   
            <enabled>true</enabled>   
            <updatePolicy>never</updatePolicy>   
            <checksumPolicy>warn</checksumPolicy>   
          </releases>   
          <snapshots>   
            <enabled>false</enabled>   
          </snapshots>   
          <layout>default</layout>   
        </repository>   
      </repositories>   
      <pluginRepositories>   
    <pluginRepository>   
    <id>repo-local</id>   
    <name>Internal    </name>   
    <url>http://192.168.0.2:8082/repo-local</url>   


    <releases>   
            <enabled>true</enabled>   
            <updatePolicy>never</updatePolicy>   
            <checksumPolicy>warn</checksumPolicy>   
    </releases>   
    <snapshots>   
    <enabled>false</enabled>   
    </snapshots>   
    <layout>default</layout>   
    </pluginRepository>   
    </pluginRepositories>

releases,snapshots:各製品のバージョンのReleaseまたはsnapshot(注:releaseとsnapshotの違いは、releaseは一般的に安定したバージョンであるが、snapshotは基本的に不安定であり、スナップショットとしてのみ使用される)properties mavenのpropertiesはplaceholder値、例えばantのpropertiesとして使用される.以下の5種類の値:env.Xを含み、前の環境変数project.xを返す:pomで定義された要素値、例えばproject.version settを返すings.x:settingsを返す.xmlで定義された要素javaシステムのプロパティ:java.lang.System.getProperties()が返す値x:ユーザが自分で設定した値Activationこのprofile xmlコードをアクティブにする
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<activation>   
        <activeByDefault>false</activeByDefault>   
        <jdk>1.5</jdk>   
        <os>   
          <name>Windows XP</name>   
          <family>Windows</family>   
          <arch>x86</arch>   
          <version>5.1.2600</version>   
        </os>   
        <property>   
          <name>mavenVersion</name>   
          <value>2.0.3</value>   
        </property>   
        <file>   
          <exists>$
{

basedir}

/file2.properties</exists>   
          <missing>${

basedir}

/file1.properties</missing>   
        </file>   
      </activation>   
 

jdk:指定したjdkバージョンに一致するとos:オペレーティングシステムproperty:mavenが対応するプロパティfileを検出できる場合:activationを使用してprofileをアクティブにする以外にファイルが存在するかどうかを判断するために使用されます.ActiveProfilesでActive Profilesがアクティブなprofileをアクティブにすることもできます.profile idで指定します.xmlコード
1
2
3
<activeProfiles>   
    <activeProfile>env-test</activeProfile>    profile id   
  </activeProfiles>