使用Maven进行构建时,我看到了奇怪的行为。我发现行家使用目录中的本地存储库与我在settings.xml中配置的目录不同。更糟糕的是,我不知道maven使用的目录来自哪里。
为了进行调查,我在执行maven cmd时启用了-X,并且可以看到使用了setting.xml和本地存储库目录。
我可以看到settings.xml(全局和用户)是我配置的。而且本地repo目录与我在标记中配置的目录完全不同(仅在用户settings.xml中配置)。
我不知道为什么。有人知道吗? Maven是否还会检查其他配置文件以覆盖settings.xml中的localRepository配置?
提前致谢。
最佳答案
由于您对全局和用户设置文件有把握,因此可以通过系统/用户属性“ maven.repo.local”覆盖本地存储库。
可以通过多种方式指定:
作为用户属性:来自maven cli,例如mvn -Dmaven.repo.local = ...
作为系统属性:在MAVEN_OPTS中设置时-Dmaven.repo.local =(可以在maven.bat或maven.sh中设置)
如果未将maven.repo.local设置为用户或系统属性,则maven将首先在用户设置中然后在全局设置中查找localRepository配置:
如果在localRepository(repo / dir1)中指定相对路径,则将在项目目录下使用指定路径创建repo目录
如果没有可用的选项,则使用路径/.m2/repository