Maven部署:使用-DaltDeploymentRepository进行部署

时间:2012-11-25 01:11:07

标签: maven deployment

我有maven项目,我想在内部nexus存储库上部署我的工件,该存储库配置为在两个不同的位置上包含快照发布。所以我不能使用'distributionManagement',因为这会硬编码位置。所以我在 settings.xml 中定义了几个 ,说'releaseRepository'和'snapshotRepository',并且每个都有参数'release',对于版本应该设置为'true'快照的“假”。

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

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

现在,当我在命令之上运行时,它会失败,因为没有提供'layout'的值,我得到异常并且构建失败。

我找不到关于'layout'应该是什么值的任何信息,我有大约10个项目,我想要构建并相互发布。

3 个答案:

答案 0 :(得分:35)

  

altDeploymentRepository String - 指定项目的备用存储库   应该部署工件(除了&lt; distributionManagement&gt;中指定的工件)。   格式:id :: layout :: url

source

因此,在您的情况下:releaseRepository::default::http://your.repo.url(请参阅here了解布局)

答案 1 :(得分:0)

&#34;布局&#34;是为了向后兼容Maven 1而提供的传统交换机,此时是不合时宜的。如果您正在使用Maven 2或Maven 3(因为我认为至少99.99%的世界必须在这一点上),它确实是&#34;默认&#34;,如此处其他地方所述。通过陈述答案是明确的&#34;默认&#34;,避免了开关效用的问题;如果总是&#34;默认&#34;,它仍然存在?

如果你实际上仍在使用Maven 1,它应该是&#34; legacy&#34;,但我希望没有人。所有这些都在Maven规范中描述:

布局 Maven2布局的默认布局或Maven1布局的遗留布局。 Maven3也使用默认布局。

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

答案 2 :(得分:0)

这可能不是您特定问题的答案,只是因为您有不同的发布和快照存储库,您不需要使用 alt location 属性。仍然可以通过pom.xml中的分发管理标签进行管理

这是包含发布和快照存储库的示例代码段

  <distributionManagement>
    <repository>
      <id>releaseRepository</id>
      <name>releaseRepository</name>
      <url>release-url-goes-here</url>
    </repository>
    <snapshotRepository>
      <id>snapshotRepository</id>
      <name>snapshotRepository</name>
      <url>snapshot-url-goes-here</url>
    </snapshotRepository>
  </distributionManagement>
相关问题