2012-11-25 148 views
20

我有Maven项目,我想我的部署内部的Nexus仓库的文物,其配置有我快照发布在两个不同的地方。所以我不能使用'distributionManagement',因为这会硬编码位置。所以我定义了几个在我的settings.xml中说'releaseRepository'和'snapshotRepository',并且每个都有参数'release',对于发布版本应该设置为'true',对于快照应该设置为'false'。Maven的部署:部署使用-DaltDeploymentRepository

我使用以下命令运行我的构建以释放我的构件;

mvn clean deploy -DaltDeploymentRepository=releaseRspository::<DON'T KNOW WHAT GOES HERE SO LEFT IT EMPTY>::htp://abc.com/repositores/my-releases/ -Drelease=true 

现在,当我运行上面的命令失败,因为'布局'值没有提供,我得到异常和构建失败。

我找不到任何有关'布局'值的信息,我有大约10个项目,我想要彼此构建和释放。

回答

26

altDeploymentRepository String - 指定的替代存储库,以该项目 工件应该被部署(高于<distributionManagement>指定其他)。 格式如下:id ::布局::网址

source

所以,在你的情况:releaseRepository::default::http://your.repo.url(见here布局)

+0

感谢......刚刚才......我的体型有点远了,但现在与“权限被拒绝”失败。我有选项卡在相同的settings.xml中使用用户名和密码,但我不确定它是否在使用,我的意思是我无法看到我的个人资料和服务器定义之间的任何链接,我怎么能链接它们,即我怎么说maven使用服务器id = abc进行身份验证,然后使用其配置上传? – SJunejo

+0

这就是'id'代表'altDeploymentRepository'代表 – 2012-11-25 01:41:02

+0

id = PROFILE_NAME?是或应该在那里使用服务器名称? – SJunejo

0

“布局” 是为向后旧式交换机与Maven 1兼容,并且在这一点上是一个时代错误。如果您使用的是Maven 2或Maven 3(因为我相信至少有99.99%的世界必须在这一点上),这确实是“默认”,如其他地方所述。通过说明答案是明确的“默认”,交换机的效用问题就被消除了;如果它总是“默认”,它仍然存在?

如果你实际上仍然在使用Maven 1,它应该是“遗留”的,但我希望没有人。所有这些都在Maven规范中描述:

布局 默认为Maven2布局或Maven1布局的传统。 Maven3也使用默认布局。

https://maven.apache.org/plugins/maven-deploy-plugin/deploy-mojo.html