Mavenローカルリポジトリの場所を取得するにはどうすればよいですか?


84

Mavenローカルリポジトリの場所を取得する方法はありますか?

次のコマンドを使用すると、Mavenに特定の設定ファイルを使用させることができます。

 mvn -s < path to settings file >

settings.xmlファイルを編集してリポジトリの場所を設定できることは知っていますが、Mavenコマンドで現在のデフォルト値を取得できますか?

回答:


126

ローカルリポジトリのみが必要な場合は、次のことを試してください。

mvn help:evaluate -Dexpression=settings.localRepository | grep -v '\[INFO\]'

編集

Mavenヘルププラグインの最近のバージョンでは、出力をgrepする必要をなくすことができる、というevaluate目標に役立つパラメーターが導入されたため、数年後にこれを再検討しforceStdoutています。

mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout

2
| grep -v '\[INFO\]' あなたの正規表現には厄介な副作用があると思います。
kubanczyk 2016年

どちらのバージョンも私には有効ですが、「厄介な副作用」とはどういう意味ですか?
adutra 2016年

3
@adutra正規表現は、大文字のI、N、F、およびOで構成される一致グループを指定します。したがって、INFO、OFNI、I、F、Nなどのいずれかの行に一致します。試してみてくださいecho -e "INFO\nOFNI\nI\nIfoobar" | grep '[INFO]'
pmr

3
Mavenの警告がある場合、または依存関係をダウンロードする場合、これは機能しません。次のgrep、絶対ファイルパスの検索は、UNIXとWindowsの両方で動作するはずです:mvn help:evaluate -Dexpression=settings.localRepository | grep -E '^([a-zA-Z]:|/)'
SiXoS

@SiXoSも機能しませんでした。私の場合、[INFO]プロジェクトをスキャンしているときにmvnが警告をスローし、出力がgrepさ​​れたときに何も一致しませんでした。
Sajuuk 2018

51

はい、-Xまたは--debugオプションで取得できます。例:mvn -X

...
[DEBUG] Reading global settings from C:\Maven\conf\settings.xml
[DEBUG] Reading user settings from C:\segphault\.m2\settings.xml
[DEBUG] Using local repository at C:\Repo
...

40

Mavenヘルププラグインは、ローカルリポジトリパスを含むローカル設定を表示します。

次のコマンドが必要です。

mvn help:effective-settings

出力には、XML形式の設定が表示されます。localRepository要素を探します。

<localRepository xmlns="http://maven.apache.org/SETTINGS/1.1.0">/home/jrs/.mavenRepo</localRepository>

警告をスローした場合、出力はXML形式ではないように見えます。
Sajuuk 2018

20

ではそれまでの間、あなたは簡単な方法でそれを行うことができます。

mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout

これを直接使用して、次のようなシェル変数を割り当てることもできます。

RESULT=$(mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout)

重要な注意:Mavenの最新バージョンと、もちろんmaven-help-pluginの最新バージョンを使用してください...

これには、改行などのない結果が含まれます。


この回答は、これまでに提案された他のどのソリューションよりもクリーンな結果をもたらすソリューションを提供するため、受け入れられた回答である必要があります。
Zartc

これは、少なくとも一部のプラットフォーム/構成では機能しません。私(fc 28、Maven 3.5.2)の場合、-qを指定すると、プロパティは存在しますが、出力を生成しませんが、grepを実行する必要があります。
Pawel Veselov 2018年

5

/home/.m2ディレクトリにあるはずです。フォルダはおそらく隠されています。したがって、非表示のフォルダを表示するには、Ctrl + Hを押す必要があります。


4

Windowsユーザー向け

通常は次の場所にありますC:\Users\USER_NAME\.m2\repository
ただし、mvn help:effective-settingsコマンドは確実に応答xmlにローカルパスを表示します。


より一般的:settings.xml${user.home}/.m2/repositoryでオーバーライドできるデフォルトです。 6年以上前にここでの回答で言及されています:stackoverflow.com/a/6670563/1744774mvn help:effective-settings
Gerold Broser

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.