Maven:如何以有效的方式知道本地存储库(localRepository / M2_REPO)在哪里?

时间:2018-03-26 10:08:32

标签: maven

对于基于maven的项目与世界其他地方之间的构建集成,我需要能够找到Maven认为当前用户/构建的本地存储库的位置,但是来自Maven外部。

现在,我使用:

mvn help:evaluate -Dexpression="localRepository" | grep basedir | sed -e "s/.*>\(.*\)<.*/\1/")

这可行(或者似乎在我遇到的情况的子集中工作),但它极端慢:每次调用该行需要几秒钟(启动JVM,让maven做它需要什么,等等。它在交互式构建中是无法忍受的。

那么,有没有人知道是否有更快的方法来找到它? 我相信我不能只查找M2_REPO环境变量,因为值可以在别处定义(在用户settings.xml中?在其他地方?)

我现在更好的想法是根据项目路径设置一个envirnment-variable和key builtd,以至少将评估速度降低到一次。

任何想法或见解都会非常有帮助。

1 个答案:

答案 0 :(得分:0)

除非在.m2/repository中另有指定,否则可以在用户目录中的settings.xml中找到本地存储库。

解析settings.xml