如何获得Maven本地回购地点?

cod*_*joe 75 maven-2 maven

有没有办法获得Maven本地回购地点?

使用以下命令可以强制Maven使用特定的设置文件:

 mvn -s < path to settings file >
Run Code Online (Sandbox Code Playgroud)

我知道您可以编辑settings.xml文件来设置存储库位置,但是我可以通过一些Maven命令获取当前默认值吗?

adu*_*tra 101

如果您只想要本地仓库,请尝试以下方法:

mvn help:evaluate -Dexpression=settings.localRepository | grep -v '\[INFO\]'
Run Code Online (Sandbox Code Playgroud)

  • @adutra 您的正则表达式指定了一个由大写字符 I、N、F 和 O 组成的匹配组。因此它将匹配以下任一行:INFO、OFNI、I、F、N 等。试试看 `echo -e "信息\nOFNI\nI\nIfoobar" | grep '[信息]'` (3认同)
  • 如果你有maven警告或它下载依赖项,这将不起作用.以下用于搜索绝对文件路径的grep应该适用于unix和windows:`mvn help:evaluate -Dexpression = settings.localRepository | grep -E'^([a-zA-Z]:| /)'` (3认同)
  • 我想你打算`| grep -v'\ [INFO \]'`你的正则表达式有令人讨厌的副作用. (2认同)

Jus*_*ick 49

是的,您可以使用-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
...
Run Code Online (Sandbox Code Playgroud)


小智 36

Maven帮助插件将显示本地设置,包括本地存储库路径.

你想要的命令:

mvn help:effective-settings
Run Code Online (Sandbox Code Playgroud)

输出将以XML格式显示设置.查找localRepository元素:

<localRepository xmlns="http://maven.apache.org/SETTINGS/1.1.0">/home/jrs/.mavenRepo</localRepository>
Run Code Online (Sandbox Code Playgroud)


khm*_*ise 13

在此期间,您可以通过以下更简单的方式进行操作:

mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout
Run Code Online (Sandbox Code Playgroud)

您也可以直接使用它来分配该shell变量,如下所示:

RESULT=$(mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout)
Run Code Online (Sandbox Code Playgroud)

重要说明:请使用最新版本的Maven,当然也应使用最新版本的Maven-help-plugin ...

这将包含结果,而没有新行等。


Abo*_*abi 5

它应该在 /home/.m2 目录中,该文件夹可能是隐藏的。因此,您需要按 Ctrl+H 才能查看隐藏文件夹。


Shu*_*dey 5

对于 Windows 用户

通常它在:C:\Users\USER_NAME\.m2\repository
但是,该mvn help:effective-settings命令肯定会在响应 xml 中显示本地路径。