Maven命令确定Maven正在使用哪个settings.xml文件

时间:2009-08-11 15:43:06

标签: maven command-line maven-2 settings

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

8 个答案:

答案 0 :(得分:288)

使用-X选项启动maven(调试)并检查输出的开头。应该是这样的:

...
[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
...

(我删除了原始目录名称)

答案 1 :(得分:161)

您对cletus'(正确)答案的评论意味着涉及多个Maven设置文件。

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

您可以从命令行覆盖全局和用户设置的位置,以下示例将全局设置设置为 c:\ global \ settings.xml ,并将用户设置设置为 C:\用户\的settings.xml

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

目前,没有任何属性或方法可以确定Maven使用的用户和全局设置文件。要访问这些值,您必须修改MavenCli和/或DefaultMavenSettingsBuilder,以将文件位置注入已解析的Settings对象。

答案 2 :(得分:111)

您可以使用maven help plugin告诉您用户和全局设置文件的内容。

mvn help:effective-settings

将要求maven吐出组合的全局和用户设置

答案 3 :(得分:35)

这是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
    

答案 4 :(得分:23)

全局的M2_HOME环境变量。见Settings Reference

  

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

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

答案 5 :(得分:23)

确定Maven是否正在使用所需的settings.xml的快速而脏的方法将使其xml无效并运行一些需要settings.xml的安全maven命令。

如果它读取 settings.xml,则Maven会报告错误:“读取settings.xml错误...”

答案 6 :(得分:2)

如果您像我一样正在调试和浪费时间,这将提供包括密码在内的确切详细信息。 :P

mvn help:effective-settings -DshowPasswords=true

答案 7 :(得分:-1)

如果您想了解正在使用的Maven的settings.xml文件的路径(除了其他信息),请从命令行运行:

mvn --version