Maven コマンドラインを使用して、Maven が取得している settings.xml ファイルを特定するにはどうすればよいですか?
7 に答える
-X オプションを指定して Maven を起動し (デバッグ)、出力の先頭を調べます。次のようなものがあるはずです:
...
[INFO] Error stacktraces are turned on.
[DEBUG] Reading global settings from c:\....\apache-maven-3.0.3\conf\settings.xml
[DEBUG] Reading user settings from c:\....\.m2\settings.xml
[DEBUG] Using local repository at C:\....\repository
...
(元のディレクトリ名は私が削除します)
cletusの(正しい)回答に対するあなたのコメントは、複数のMaven設定ファイルが関係していることを意味します。
Mavenは常に1つまたは2つの設定ファイルを使用します。()で定義されたグローバル設定${M2_HOME}/conf/settings.xml
は常に必要です。ユーザー設定ファイル(で定義)${user.home}/.m2/settings.xml
はオプションです。ユーザー設定で定義された設定は、対応するグローバル設定よりも優先されます。
コマンドラインからグローバル設定とユーザー設定の場所を上書きできます。次の例では、グローバル設定をc:\ global \ settings.xmlに設定し、ユーザー設定をc:\ user\settings.xmlに設定します。
mvn install --settings c:\user\settings.xml
--global-settings c:\global\settings.xml
現在、Mavenで使用されたユーザーおよびグローバル設定ファイルを確立するためのプロパティまたは手段はありません。これらの値にアクセスするには、MavenCliやDefaultMavenSettingsBuilderを変更して、解決された設定オブジェクトにファイルの場所を挿入する必要があります。
Mavenヘルププラグインを使用して、ユーザーとグローバル設定ファイルの内容を通知できます。
mvn help:effective-settings
グローバル設定とユーザー設定を組み合わせて吐き出すようにMavenに要求します。
これは Maven の構成ファイルです。次の 2 つのレベルで指定できます。
ユーザーレベル。この settings.xml ファイルは、単一ユーザーの構成を提供し、通常は ${user.home}/.m2/settings.xml で提供されます。
NOTE: This location can be overridden with the CLI option: -s /path/to/user/settings.xml
グローバルレベル。この settings.xml ファイルは、マシン上のすべての Maven ユーザーの構成を提供します (すべて同じ Maven インストールを使用していると仮定します)。通常、${maven.home}/conf/settings.xml で提供されます。
NOTE: This location can be overridden with the CLI option: -gs /path/to/global/settings.xml
M2_HOME
グローバル環境変数。設定リファレンスを参照してください:
ファイル内の
settings
要素には、settings.xml
Maven の実行をさまざまな方法で構成する値を定義するために使用される要素が含まれていますがpom.xml
、特定のプロジェクトにバンドルしたり、対象ユーザーに配布したりしないでください。これらには、ローカル リポジトリの場所、代替リモート リポジトリ サーバー、認証情報などの値が含まれます。settings.xml ファイルが存在する場所は 2 つあります。
- Maven のインストール:
$M2_HOME/conf/settings.xml
- ユーザーのインストール:
${user.home}/.m2/settings.xml
Mavenが目的のsettings.xmlを使用しているかどうかを判断するための簡単で汚い方法は、そのxmlを無効にし、settings.xmlを必要とする安全なmavenコマンドを実行します。
このsettings.xml を読み取ると、Maven は次のエラーを報告します: 「settings.xml の読み取りエラー...」