如何使用 Maven 命令行来确定 Maven 正在选取哪个 settings.xml 文件?

有帮助吗?

解决方案

启动与-X选项(调试)行家并检查输出的开始。应该是这样的:

...
[INFO] Error stacktraces are turned on.
[DEBUG] Reading global settings from c:\....\apache-maven-3.0.3\conf\settings.xml
[DEBUG] Reading user settings from c:\....\.m2\settings.xml
[DEBUG] Using local repository at C:\....\repository
...

(原始目录名由我被删除)

其他提示

您对克莱评论(正确)的答案意味着,在涉及多种Maven的设置文件。

的Maven始终使用一个或两个设置文件。在($ {M2_HOME} /conf/settings.xml)中定义的全局设置始终是必需的。用户设置文件(在$ {的user.home} /定义。平方米/ settings.xml中)是可选的。在用户设置定义的任何设置优先于相应的全局设置。

可以重写的命令行的全局和用户设置的位置,下面的例子将设置全局设置为 C:\全球\ settings.xml中和用户设置来 C:\用户\的settings.xml

mvn install --settings c:\user\settings.xml 
    --global-settings c:\global\settings.xml

目前没有任何财产或手段,建立从与Maven使用了什么样的用户和全局设置文件。要访问这些值,你将不得不修改MavenCli和/或DefaultMavenSettingsBuilder到解析设置对象注入文件位置。

您可以使用行家帮助插件告诉你的内容你的用户和全局设置文件。

mvn help:effective-settings

将询问行家吐出的合并的全局和用户设置

这是 Maven 的配置文件。它可以在两个级别上指定:

  1. 用户级别。此settings.xml文件为单个用户提供配置,通常以$ {user.home}/。m2/settings.xml提供。

              NOTE: This location can be overridden with the CLI option:
    
              -s /path/to/user/settings.xml
    
  2. 全球水平。该 settings.xml 文件为所有 Maven 用户(假设他们都使用相同的 Maven 安装)。通常在 ${maven.home}/conf/settings.xml。

              NOTE: This location can be overridden with the CLI option:
    
              -gs /path/to/global/settings.xml
    

M2_HOME 全局环境变量。看 设置参考:

settings 中的元素 settings.xml 文件包含元素 用于定义配置 以各种方式执行 Maven,例如 的 pom.xml, 但不应 捆绑到任何特定项目,或 分发给观众。这些 包括诸如本地 存储库位置、备用远程 存储库服务器和认证 信息。有两个地点 设置.xml 文件的位置:

  • Maven 安装: $M2_HOME/conf/settings.xml
  • 用户的安装: ${user.home}/.m2/settings.xml

快捷粗略的方法来确定是否Maven的是使用所需的settings.xml将其无效xml和运行需要的settings.xml一些安全行家命令。

如果它读这个的settings.xml然后Maven的报告错误: “读取错误的settings.xml ......”

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top