创建特定于项目的Maven设置

时间:2017-04-01 12:28:06

标签: maven

我为所有Maven项目提供了一个通用settings.xml文件,其中定义了默认配置文件以及服务器和镜像。如何使用项目特定的设置忽略默认设置?

我可以指向一个特定Maven项目的本地settings.xml文件吗?

传递带有--settings参数的本地设置文件也有效,但是有没有办法永久执行此操作?

3 个答案:

答案 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中,您可以为任何项目设置不同的设置文件:

  1. 转到设置->构建,执行,部署->构建工具-> Maven
  2. 将用户设置文件设置为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>