有没有办法获取Maven本地仓库的位置?
使用以下命令,您可以强制Maven使用特定的设置文件:
mvn -s < path to settings file >
我知道您可以编辑settings.xml
文件来设置存储库位置,但是我可以通过一些Maven命令获得当前的默认值吗?
Answers:
如果只需要本地存储库,请尝试以下操作:
mvn help:evaluate -Dexpression=settings.localRepository | grep -v '\[INFO\]'
编辑
几年后,我将重新讨论这一问题,因为最新版本的Maven帮助插件为该evaluate
目标引入了一个有用的参数,该参数forceStdout
使我们无需grep输出即可:
mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout
echo -e "INFO\nOFNI\nI\nIfoobar" | grep '[INFO]'
mvn help:evaluate -Dexpression=settings.localRepository | grep -E '^([a-zA-Z]:|/)'
是的,您可以使用-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
...
在此期间,您可以通过以下更简单的方式进行操作:
mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout
您还可以直接使用它来分配该shell变量,如下所示:
RESULT=$(mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout)
重要说明:请使用最新版本的Maven,当然还要使用最新版本的Maven-help-plugin ...
这将包含结果而无需换行等。
它应该在/home/.m2目录中,该文件夹可能已隐藏。因此,您需要按Ctrl + H才能查看隐藏的文件夹。
通常在:中C:\Users\USER_NAME\.m2\repository
。
但是,该mvn help:effective-settings
命令肯定会在响应xml中显示本地路径。
| grep -v '\[INFO\]'
regex有讨厌的副作用。