我为所有Maven项目提供了一个通用settings.xml
文件,其中定义了默认配置文件以及服务器和镜像。如何使用项目特定的设置忽略默认设置?
我可以指向一个特定Maven项目的本地settings.xml
文件吗?
传递带有--settings
参数的本地设置文件也有效,但是有没有办法永久执行此操作?
答案 0 :(得分:15)
我想我有一个解决这个问题的方法,你需要一个最近的maven版本,我正在使用maven 3.5.2但该功能是在maven中引入的3.3.1我相信,不确定。
我们的想法是使用本地.mvn
文件夹(在父项目的文件夹中),在该文件夹中可以配置多种内容,例如JVM选项,常用的maven选项等。
对于maven选项,只需在内容为maven.config
的{{1}}文件夹中创建一个文件.mvn
,这应该是关于它的。当然--settings ./.mvn/local-settings.xml
应该是有效的maven设置文件。
这是maven项目根文件夹中的结构:
local-settings.xml
答案 1 :(得分:0)
在IntelliJ中,您可以为任何项目设置不同的设置文件:
local-settings.xml
答案 2 :(得分:0)
在maven 3.3.1之后,使用project-settings-extension加载项目设置,并将项目特定的镜像放入每个项目的${basedir}/.mvn/settings.xml
中。
在${basedir}/.mvn/extensions.xml
<extensions xmlns="http://maven.apache.org/EXTENSIONS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/EXTENSIONS/1.0.0 http://maven.apache.org/xsd/core-extensions-1.0.0.xsd">
<extension>
<groupId>com.github.gzm55.maven</groupId>
<artifactId>project-settings-extension</artifactId>
<version>0.1.1</version>
</extension>
</extensions>
在${basedir}/.mvn/settings.xml
<settings>
<mirrors>
<mirror>
<id>id</id>
<url>https://url-for-this-project/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<profiles>
<!-- profiles for this project, such as corp internal repositories -->
</profiles>
</settings>