Mavenの構成ファイルsettings.xmlは2つの場所に存在します。
1。インストール場所:$ {m2_home} /conf/settings.xml
2。ユーザーディレクトリ:$ {user.home}/。m2/settings.xml
前者はグローバル構成とも呼ばれ、オペレーティングシステムのすべてのユーザーに効果的です。後者はユーザー構成と呼ばれ、現在のオペレーティングシステムのユーザーにのみ効果的です。両方が存在する場合、その内容がマージされ、ユーザー全体のsettings.xmlがグローバルSettings.xmlを上書きします。
Mavenがインストールされた後、settings.xmlはユーザーディレクトリで自動的に生成されず、グローバル構成ファイルのみが利用可能です。ユーザー全体のsettings.xmlを作成する必要がある場合は、ディレクトリ$ {user.home}/。m2/へのインストールパスの下に設定をコピーできます。 Mavenのデフォルトsettings.xmlは、コメントと例を含むテンプレートです。要件を満たすためにすばやく変更できます。
グローバル構成が変更されると、すべてのユーザーが影響を受けます。 Mavenがアップグレードされた場合、すべての構成がクリアされます。したがって、$ {M2_HOME} /Conf/Settings.xmlファイルを事前にコピーしてバックアップする必要があります。一般に、グローバルSettings.xmlを構成することはお勧めしません。
settings.xml詳細な説明
宣言仕様
<?xml version = "1.0" encoding = "utf-8"?> <設定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.sd">
LocalRepository
<! - ローカルリポジトリへのパス。デフォルト値は$ {user.home}/。M2/リポジトリです。 - > <localrepository> usr/local/maven </localrepository>インタラクションモード
<! - Mavenはユーザーと対話して入力を取得する必要がありますか。 Mavenがユーザーと対話して入力を取得する必要がある場合、Trueに設定する必要があります。デフォルトはtrueです。 - > <InteractiveMode> true </interactiveMode>
usepluginregistry
<! - Mavenは、プラグインバージョンを管理するためにPlugin-Registry.xmlファイルを使用する必要があります。 Mavenにファイル$ {user.home}/。m2/plugin-registry.xmlを使用してプラグインバージョンを管理する必要がある場合はtrueに設定します。デフォルトはfalseです。 - > <usepluginregistry> false </usepluginregistry>オフラインオフライン
<! - Mavenがオフラインモードで実行する必要があるかどうかを示します。 TRUEビルドシステムがオフラインモードで実行する必要がある場合、デフォルトはfalseになります。この構成は、ネットワークのセットアップまたはセキュリティ要因のためにビルドサーバーがリモートリポジトリに接続できない場合に非常に便利です。 - > <オフライン> false </offline>
プラグループ
<! - プラグイン組織ID(GroupID)が明示的に提供されていない場合、プラグイン組織ID(GroupID)のリストを検索するためです。この要素には、プラグループ要素のリストが含まれています。各子供要素には、組織ID(GroupID)が含まれています。プラグインを使用し、コマンドが動作するときに組織ID(GroupID)を提供しない場合、Mavenはリストを使用します。デフォルトでは、リストにはorg.apache.maven.plugins and org.codehaus.mojo-> <plugingroups> <! - プラグイン組織ID(GroupID) - > <プラグループ> codehaus.mojo </glagingroup> </plugingroups>が含まれています。
プロキシ
<! - さまざまなエージェントを構成するために、マルチプロキシプロファイルはノートブックまたはモバイルデバイスの作業環境に対処できます。プロファイルIDを設定するだけで、プロキシ構成全体を簡単に変更できます。 - > <Proxies> <! - プロキシ要素には、プロキシの構成に必要な情報が含まれます - > <proxy> <! - プロキシの一意の定義は、異なるプロキシ要素を区別するために使用されます。 - > <id> myproxy </id> <! - これはアクティブ化されたものですか? trueはプロキシをアクティブにします。エージェントのセットを宣言し、ある時点で1つのエージェントのみをアクティブにする必要がある場合、その要素は役立ちます。 - > <Active> true </active> <! - プロキシプロトコル。プロトコル:// hostname:ポート、簡単な構成のために離散要素に分離。 - > <protocol> http </protocol> <! - プロキシのホスト名。プロトコル:// hostname:ポート、簡単な構成のために離散要素に分離。 - > <host> proxy.somewhere.com </host> <! - プロキシポート。プロトコル:// hostname:ポート、簡単な構成のために離散要素に分離。 - > <port> 8080 </port> <! - プロキシサーバーのユーザー名、ユーザー名、パスワードは、ログイン名とパスワードを認証します。 - > <username> proxyuser </username> <! - プロキシ、ユーザー名、パスワードのパスワードは、プロキシサーバー認証のログイン名とパスワードを表します。 - > <パスワード> SomePassword </password> <! - プロキシではないホスト名のリスト。このリストの区切り文字は、プロキシサーバーによって指定されています。この例では、垂直線の区切り文字が使用されており、コンマも一般的です。 - > <nonproxyhosts>*。google.com| ibiblio.org </nonproxyhosts> </proxy> </proxies>
サーバー
<! - サーバー上のいくつかの設定を構成します。セキュリティ証明書などの一部の設定は、pom.xmlで配布しないでください。このタイプの情報は、buildサーバーのsettings.xmlファイルに存在する必要があります。 - > <サーバー> <! - サーバー要素には、サーバーの構成に必要な情報が含まれます - > <server> <! - これはサーバーのID(ユーザーログインのIDではないことに注意してください)は、配布管理のリポジトリ要素のIDと一致します。 - > <id> server001 </id> <! - 承認されたユーザー名。認証ユーザー名と認証パスワードは、サーバー認証に必要なログイン名とパスワードを表します。 - > <username> my_login </username> <! - 承認パスワード。認証ユーザー名と認証パスワードは、サーバー認証に必要なログイン名とパスワードを表します。パスワード暗号化機能は2.1.0+に追加されています。詳細については、パスワード暗号化ページにアクセスしてください - > <パスワード> my_password </password> <! - 認証中に使用される秘密鍵の場所。最初の2つの要素と同様に、秘密キーの位置と秘密キーパスワードは、秘密キーへのパス(デフォルトは$ {user.home}/。ssh/id_dsa)と、必要に応じて秘密のステートメントを指定します。将来的には、PassPhraseおよびパスワード要素は外部から抽出される場合がありますが、現在、settings.xmlファイルのプレーンテキストで宣言する必要があります。 - > <privatekey> $ {usr.home}/。ssh/id_dsa </privatekey> <! - 認証に使用されるプライベートキーパスワード。 - > <PassPhrase> some_passphrase </passphrase> <! - ファイルが作成されたときの権限。展開中にリポジトリファイルまたはディレクトリが作成された場合、アクセス許可を使用できます。これら2つの要素の法的価値は3桁の数字で、664や775などのUNIXファイルシステムの権限に対応します。 - > <DirectoryPermissions> 775 </directoryPermissions> </server> </servers>鏡
<! - リポジトリリスト用に構成されたミラーリストをダウンロードします。高度な設定については、ミラー設定ページ - > <ミラー> <! - 特定のリポジトリのミラーをダウンロードしてください。 - > <mirror> <! - ミラーの一意の識別子。 IDは、さまざまなミラー要素を区別するために使用されます。 - > <id> planetmirror.com </id> <! - ミラー名 - > <name> planetmirrorオーストラリア</name> <! - 画像のURL。ビルドシステムは、デフォルトのサーバーURLを使用するのではなく、このURLを使用して優先順位を付けます。 - > <url> http://downloads.planetmirror.com/pub/maven2 </url> <! - Mirrored ServerのID。たとえば、Maven Central Repository(http://repo.maven.apache.org/maven2/)のミラーをセットアップする場合は、要素をCentralに設定する必要があります。これは、中央倉庫のIDセントラルとまったく同じでなければなりません。 - > <Mirrorof> Central </mirrorof> </mirror> </mirrors>
プロファイル
<! - 環境パラメーターに従ってビルド構成のリストを調整します。 settings.xmlのプロファイル要素は、pom.xmlのプロファイル要素のトリミングバージョンです。 ID、アクティベーション、リポジトリ、プラグインポジター、プロパティ要素が含まれています。ここでのプロファイル要素には、これらの5つの子要素のみが含まれています。これは、個別のProjectオブジェクトモデル設定ではなく、構造システム全体(これはsettings.xmlファイルの役割の位置である)のみを気にかけているためです。設定内のプロファイルがアクティブになっている場合、その値は、同じIDを使用してPOMまたはprofile.xmlで定義されている他のプロファイルを上書きします。 - > <プロファイル> <! - 環境パラメーターに従って調整されたコンポーネントの構成 - > <profile> <! - この構成の一意の識別子。 - > <id>テスト</id>
活性化
<! - プロファイルを自動的にトリガーする条件付きロジック。アクティベーションは、プロファイルのオープニングキーです。 POMのプロファイルと同様に、プロファイルの力は、特定の特定の環境で特定の値を自動的に使用する能力に由来しています。これらの環境は、アクティベーション要素によって指定されています。アクティベーション要素は、プロファイルをアクティブにする唯一の方法ではありません。 settings.xmlファイルのActiveProfile要素には、プロファイルのIDを含めることができます。プロファイルは、-Pタグとコンマ区切りリストを使用して、コマンドラインで明示的にアクティブ化することもできます(例えば-Pテスト)。 - > <activation> <! - デフォルトでプロファイルがアクティブ化されているかどうかの識別 - > <ActiveByDefault> false </ActiveByDefault> <! - 一致するJDKが検出されると、プロファイルがアクティブになります。たとえば、1.4はJDK1.4、1.4.0_2をアクティブにし、1.4は1.4で始まるJDKのすべてのバージョンをアクティブにします。 - > <jdk> 1.5 </jdk> <! - 一致するオペレーティングシステム属性が検出されると、プロファイルがアクティブになります。 OS要素は、いくつかのオペレーティングシステム関連の属性を定義できます。 - > <os> <! - プロファイルをアクティブ化するオペレーティングシステムの名前 - > <name> windows xp </name> <! - プロファイルをアクティブ化するオペレーティングシステムのファミリ(「Windows」など) - > <ファミリー> Windows </family> <! - プロファイルのオペレーティングシステムアーキテクチャ - > <アーチ> x86 </> < </os> <! - Mavenが特定のプロパティを検出した場合(その値は$ {name}でPOMで参照できます)、対応する名前=値を持ち、プロファイルがアクティブになります。値フィールドが空の場合、プロパティ名フィールドが存在する場合、プロファイルがアクティブになります。それ以外の場合、プロパティ値フィールドは、ケースに敏感な方法で一致します - > <プロパティ> <! - プロファイルをアクティブ化するプロパティの名前 - > <name> mavenversion </name> <! - プロファイルをアクティブ化するプロパティの値 - > </</value> </property> <!欠落は、ファイルが存在するかどうかをチェックし、存在しない場合はプロファイルをアクティブにします。一方、存在すると、ファイルが存在するかどうかを確認し、存在する場合はプロファイルをアクティブにします。 - > <file> <! - 指定されたファイルが存在する場合、プロファイルをアクティブにします。 - > <exists> $ {beadir} /file2.properties </exists> <! - 指定されたファイルが存在しない場合は、プロファイルをアクティブにします。 - > <行方不明> $ {beadir} /file1.properties </signing> </file> </activation>プロパティ
<! - プロファイルに対応する拡張属性のリスト。 Maven属性はANTの属性と同じであり、いくつかの値を保存するために使用できます。これらの値は、TAG $ {x}を使用してPOMのどこでも使用できます。ここで、xはプロパティの名前を指します。属性は5つの異なる形式で利用でき、すべてsettings.xmlファイルでアクセスできます。 1。ENV.X:「Env。」で接頭辞が付いていますシェル環境変数を返します。たとえば、「Env.Path」とは、$ PATH環境変数(Windows上の%パス%)を指します。 2。Project.X:POMの対応する要素値を指します。たとえば、<project> <バージョン> 1.0 </version> </project> $ {project.version}を使用してバージョン値を取得します。 3。settings.x:settings.xmlの対応する要素の値を指します。例:<settings> <offline> false </offline> </settings> $ {settings.offline}を介してオフラインの値を取得します。 4。Javaシステムプロパティ:java.lang.system.getProperties()を介してアクセスできるすべてのプロパティは、$ {java.home}などのこのフォームを使用してPOMでアクセスできます。 5。X:<プロパティ/>要素または外部ファイルに設定して、$ {somevar}として使用します。 - > <properties> <user.install> $ {user.home}/our-project </user.install> </properties>注:プロファイルがアクティブになっている場合、POMで$ {user.install}を再度使用できます。
リポジトリ
<! - リモートリポジトリリスト。これは、Mavenがビルドシステムのローカルリポジトリに設定するために使用するリモートプロジェクトのセットです。 - > <リポジトリ> <! - リモートリポジトリに接続する必要がある情報が含まれています - > <リポジトリ> <! - リモートリポジトリユニークな識別子 - > <id> codehaussnapshots </id> <! - リモートリポジトリ名 - > <name> <name> codehaus snapshots </name> <!リポジトリは、特定のタイプのコンポーネント(リリースバージョン、スナップショットバージョン)をダウンロードするために開いています。 - > <Enabled> false </enabled> <! - この要素は、更新が発生する頻度を指定します。 Mavenは、地元のPOMとリモートPOMのタイムスタンプを比較します。ここのオプションは次のとおりです。常に、毎日(デフォルト、毎日)、間隔:x(ここではxは数分で時間間隔)、または決して(決して)。 - > <updatePolicy>常に</updatePolicy> <! - Maven検証コンポーネント検証ファイルが失敗した場合の対処方法 - イグノール、失敗、または警告。 - > <CheckSpholicy> WARN </CHECKSUMPOLICHY> </RELEASES> <! - リモートリポジトリのスナップショットバージョンのダウンロードを処理する方法。 POMは、2つのセットの構成、リリース、スナップショットを使用すると、各リポジトリの各タイプのコンポーネントに異なる戦略を採用できます。たとえば、誰かがSnapshotバージョンのダウンロードのサポートを開発目的でのみ有効にすることを決定する場合があります。リポジトリ/リポジトリ/リリース要素を参照 - > <SnapShots> <enabled/> <updatePolicy/> <CheckSpholicy/> </snapshots> <! - リモートリポジトリURL、プロトコル//パスフォーム - > <url> http://snapshots.maven.codehaus.orgmen2コンポーネントを見つけてソートするために使用されるリポジトリレイアウトタイプ - デフォルトまたはレガシーを使用できます。 Maven 2は、リポジトリにデフォルトのレイアウトを提供します。ただし、Maven 1.xには異なるレイアウトがあります。この要素を使用して、レイアウトがデフォルトかレガシーかを指定できます。 - > <layout>デフォルト</layout> </repository> </repository> <! - プラグインのリモートリポジトリリストを発見します。倉庫は、2つの主要なコンポーネントを備えた家です。最初のコンポーネントは、他のコンポーネントの依存関係として使用されます。これは、中央の倉庫に保存されているコンポーネントタイプのほとんどです。別のコンポーネントタイプはプラグインです。 Mavenプラグインは、特別なタイプのコンポーネントです。このため、プラグインリポジトリは他のリポジトリから独立しています。プラグインポジター要素の構造は、リポジトリ要素の構造と類似しています。各PluginRepository要素は、Mavenが新しいプラグインを見つけるために使用できるリモートアドレスを指定します。 - > <PluginRepositories> <! - リモートプラグインリポジトリに接続する必要がある情報が含まれています。プロファイル/プロファイル/リポジトリ/リポジトリ要素の説明を参照 - > <PluginRepository> <Releases> <enabled/> <updatePolicy/> <CheckSpholicy/> </> </</</> <updatePolicy/> <checkSpolicy/> </snapshots> <id/>>>>>> < </plaginRepository> </plaginRepository> </profile> </profiles>
ActiveProfiles
<! - プロファイルのリストを手動でアクティブにし、プロファイルが適用される順序でActiveProfileを定義します。この要素には、ActiveProfile要素のセットが含まれており、それぞれにプロファイルIDが含まれています。 ActiveProfileで定義されているプロファイルIDは、環境設定に関係なくアクティブになります。一致するプロファイルがない場合、何も起こりません。たとえば、EnvTestがActiveProfileの場合、pom.xml(またはprofile.xml)のIDに対応するプロファイルがアクティブになります。実行中にそのようなプロファイルが見つからない場合、Mavenはいつものように実行されます。 - > <ActiveProfiles> <! - > <ActiveProfile> envtest </ActiveProfile> </ActiveProfiles> </settings>
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。