创建特定于项目的Maven设置

Vin*_*ent 11 maven

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

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

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

Bri*_*ice 20

我想我有一个解决这个问题的方法,你需要一个最近的maven版本,我正在使用maven 3.5.2但是这个功能是在maven 3.3.1中引入的,我相信,不确定.

我们的想法是使用本地.mvn文件夹(在父项目的文件夹中),在这里可以配置一些东西,比如JVM选项,总是使用的maven选项等.

对于maven选项,只需maven.config.mvn包含内容的文件夹中创建一个文件--settings ./.mvn/local-settings.xml,这应该是关于它的.当然local-settings.xml应该是有效的maven设置文件.

这是maven项目根文件夹中的结构:

parent-mvn-project
   ??? .mvn
   ?   ??? local-settings.xml
   ?   ??? maven.config
   ??? submodule-A (if any submodules)
   ??? submodule-B (if any submodules)
Run Code Online (Sandbox Code Playgroud)

  • 仅当您在项目根目录中运行 mvn 时,此功能才有效,如果您更改目录,maven 将解析 local_settings.xml 相对于当前工作目录的位置。对于这种行为,maven 存在一个错误,但目前还没有修复:https://issues.apache.org/jira/browse/MNG-6762 (4认同)
  • @Bhuvaneshwari工作站是否运行支持此功能的maven版本?`.mvn`是maven项目的根源吗?文件`maven.config`是否包含`--settings ./.mvn/local-settings.xml`? (2认同)
  • 我喜欢这个答案!作为记录,`.mvn`“项目文件夹”在[配置Apache Maven](https://maven.apache.org/configure.html)中有描述。另外,我已经从 [配置你的本地存储库](http://maven.apache.org/guides/mini/guide-configuring-maven.html) 中取出了一个叶子,在`. mvn` 目录,所以现在我有了一个完全沙盒化的环境,这让我很高兴。 (2认同)
  • 请注意,从 Maven 3.9 开始,只有在 `--settings` 之后添加换行符时才有效,因为每个标志现在必须放置在单独的行上(请参阅 [MNG-7684](https://issues.apache.org /jira/browse/MNG-7684))。 (2认同)

Jam*_*Gao 10

maven 3.3.1之后,使用project-settings-extension加载项目设置,并将项目特定的镜像放入${basedir}/.mvn/settings.xml每个项目中。\xc2\xa0

\n

${basedir}/.mvn/extensions.xml

\n
<extensions xmlns="http://maven.apache.org/EXTENSIONS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n      xsi:schemaLocation="http://maven.apache.org/EXTENSIONS/1.0.0 http://maven.apache.org/xsd/core-extensions-1.0.0.xsd">\n  <extension>\n    <groupId>com.github.gzm55.maven</groupId>\n    <artifactId>project-settings-extension</artifactId>\n    <version>0.3.5</version>\n  </extension>\n</extensions>\n
Run Code Online (Sandbox Code Playgroud)\n

${basedir}/.mvn/settings.xml

\n
  <settings>\n\n    <mirrors>\n      <mirror>\n        <id>id</id>\n        <url>https://url-for-this-project/</url>\n        <mirrorOf>central</mirrorOf>\n      </mirror>\n    </mirrors>\n\n    <profiles>\n      <!-- profiles for this project, such as corp internal repositories -->\n    </profiles>\n\n  </settings>\n
Run Code Online (Sandbox Code Playgroud)\n


p3q*_*uod 5

在 IntelliJ 中,您可以为任何项目设置不同的设置文件:

  1. 转到设置 -> 构建、执行、部署 -> 构建工具 -> Maven
  2. 将用户设置文件设置为 local-settings.xml