Maven发布的过程:执行插件忽略用户';s settings.xml?
根据,Maven版本:perform目标检查项目,然后派生一个新的Maven实例来构建它。出于某种原因,分叉实例似乎忽略了用户的Maven发布的过程:执行插件忽略用户';s settings.xml?,maven,maven-release-plugin,Maven,Maven Release Plugin,根据,Maven版本:perform目标检查项目,然后派生一个新的Maven实例来构建它。出于某种原因,分叉实例似乎忽略了用户的设置.xml,这在我的例子中会导致一个错误,因为该文件具有用于在父pom中组成存储库URL的属性的定义 用户的设置.xml “nexus”配置文件中始终处于活动状态的属性定义 关系 http://host.com/nexus/content/repositories 关系 家长的pom.xml 使用定义的属性组合存储库的URL 关系 ${dist.url}/re
设置.xml
,这在我的例子中会导致一个错误,因为该文件具有用于在父pom中组成存储库URL的属性的定义
- 用户的设置.xml
“nexus”配置文件中始终处于活动状态的属性定义关系 http://host.com/nexus/content/repositories 关系
- 家长的pom.xml
使用定义的属性组合存储库的URL
关系 ${dist.url}/releases
- 执行的命令:
mvn发布:执行
- 输出(表示已成功签出、构建、测试和打包项目后):
[INFO]上传:${dist.url}/releases/com/acme/access/my-project/1.0/my-project-1.0.jar [资讯][资讯]------------------------------------------------------------------------ [INFO][INFO]生成失败 [资讯][资讯]------------------------------------------------------------------------ [信息][信息]总时间:3.659秒 [信息][信息]完成时间:美国东部夏令时2012年8月1日星期三14:40:23 [信息][信息]最终内存:21M/307M [资讯][资讯]------------------------------------------------------------------------ [信息][警告]无法激活请求的配置文件“nexus”,因为它不存在。 [INFO][ERROR]未能在项目上执行goal org.apache.maven.plugins:maven部署插件:2.7:deploy(默认部署)我的项目:未能部署工件:无法将工件传输到com.acme.access:my project:jar:1.0 from/to nexus(${dist.url}/releases):传输文件时出错:无协议:${dist.url}/releases/com/acme/access/my-project/1.0/my-project-1.0.jar->[帮助1]
-s
参数“包装”插件的参数来手动指定settings.xml
文件的位置,如中所示
mvn发行版:执行-Darguments=“-sc:\Users\theuser\.m2\settings.xml”
插件是否以预期/正确的方式运行?是否有一种方法可以将属性定义保存在用户的设置.xml
中,而不必像我上面所做的那样指定文件的位置
更多信息:
- 问题似乎特别在于插件找不到用户的
设置.xml
,因为将配置文件信息复制到全局设置.xml
会导致它工作
- 用户的
settings.xml
已正确命名/创建,因为运行help:activeprofiles
表示该配置文件处于活动状态。使用mvn clean deploy
手动构建和部署也可以正常工作(即正确计算存储库URL并上载工件)
这不一定是maven版本插件中的错误。似乎您遇到了这个Maven bug:
这个bug应该在Maven 3.0.4中修复。同意,很高兴知道这个行为被认为是bug。谢谢我在Maven 3.0.4-R1232337中遇到了同样的问题,这在Maven 3.5.0中仍然是一样的,我认为在我的例子中类似的问题类型。