如何使用maven命令行来确定maven正在拾取哪个settings.xml文件?
全局变量的M2_HOME环境变量。参见设置参考:
The settings element in the settings.xml file contains elements used to define values which configure Maven execution in various ways, like the pom.xml, but should not be bundled to any specific project, or distributed to an audience. These include values such as the local repository location, alternate remote repository servers, and authentication information. There are two locations where a settings.xml file may live: The Maven install: $M2_HOME/conf/settings.xml A user's install: ${user.home}/.m2/settings.xml
您对cletus(正确)回答的评论暗示涉及多个Maven设置文件。
Maven总是使用一个或两个设置文件。(${M2_HOME}/conf/settings.xml)中定义的全局设置始终是必需的。用户设置文件(定义在${user.home}/.m2/settings.xml中)是可选的。在用户设置中定义的任何设置优先于相应的全局设置。
你可以从命令行覆盖全局和用户设置的位置,下面的例子将全局设置设置为c:\global\settings.xml,用户设置为c:\user\settings.xml:
mvn install --settings c:\user\settings.xml
--global-settings c:\global\settings.xml
目前还没有属性或方法来确定Maven使用了哪些用户和全局设置文件。要访问这些值,您必须修改MavenCli和/或DefaultMavenSettingsBuilder以将文件位置注入解析的Settings对象。
这是Maven的配置文件。它可以在两个级别上指定:
User Level. This settings.xml file provides configuration for a single user, and is normally provided in ${user.home}/.m2/settings.xml. NOTE: This location can be overridden with the CLI option: -s /path/to/user/settings.xml Global Level. This settings.xml file provides configuration for all Maven users on a machine (assuming they're all using the same Maven installation). It's normally provided in ${maven.home}/conf/settings.xml. NOTE: This location can be overridden with the CLI option: -gs /path/to/global/settings.xml
确定Maven是否正在使用所需的settings.xml的快速且肮脏的方法将使其xml无效,并运行一些需要settings.xml的安全Maven命令。
如果它读取了settings.xml,那么Maven会报告一个错误:“读取settings.xml时出错…”
使用-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
...
(原来的目录名称被我删除了)
您可以使用maven帮助插件来告诉您用户和全局设置文件的内容。
mvn help:effective-settings
将要求maven吐出组合的全局和用户设置。
如果您像我一样在调试和浪费时间,这将提供包括密码在内的详细信息。: P
mvn help:effective-settings -DshowPasswords=true
推荐文章
- 如何在Mac上的命令行安装JQ ?
- Maven依赖Servlet 3.0 API?
- 在pom.xml中的<依赖>下的<作用域>是为了什么?
- 在命令行中使用Firefox截取完整页面的截图
- 在pip install -U中“-U”选项代表什么
- 如何将参数转发到bash脚本中的其他命令?
- 使用Wget进行多个同时下载?
- Unix列表命令'ls'可以输出数值chmod权限吗?
- 如何从命令行重置Jenkins安全设置?
- 如何在IntelliJ中为整个项目配置“缩短命令行”方法
- 如何获得工件的依赖树?
- 如何使用xargs复制名称中有空格和引号的文件?
- “react-scripts”不被视为内部或外部命令
- Maven项目版本继承——我必须指定父版本吗?
- 在单行命令行中执行多行语句