altDeploymentRepository和altReleaseDeploymentRepository的区别

21
我在项目中使用 swagger 来生成 web 服务客户端。生成的代码会产生一个可以用作 Maven 库的库。我已经成功地将发布版本部署到了我的私有 sonatype-nexus 中。
我想知道 altDeploymentRepositoryaltReleaseDeploymentRepository 之间有什么区别?如果同时设置了这两个参数,mvn deploy 如何选择要使用的存储库?
根据apache-maven deploy documentation所述:

altDeploymentRepository:指定应部署项目工件的替代存储库(而不是在 pom.xml 中指定的存储库)。格式:id::layout::url

altReleaseDeploymentRepository:当项目具有最终版本时要使用的替代存储库。

altSnapshotDeploymentRepository:当项目具有快照版本时要使用的替代存储库。

那么,

当项目具有最终版本时要使用的替代存储库。

是什么意思呢?
1个回答

30
当指定了altReleaseDeploymentRepository时,仅在项目有发布(或“最终”)版本,即不是快照版本时使用。当指定了altSnapshotDeploymentRepository时,仅在项目有快照版本时使用。altDeploymentRepository是默认备用部署存储库,当上述存储库未被指定或使用时使用。
换句话说,如果您有发布版本,则:
- 如果已指定 altReleaseDeploymentRepository,则将使用它; - 否则,如果已指定 altDeploymentRepository,则将使用它; - 否则,如果已在 POM 元素<distributionManagement><repository>中声明发布远程存储库,则将使用该存储库; - 否则,插件将出错,因为找不到任何远程存储库可供部署。
类似地,如果您有快照版本,则:
- 如果已指定 altSnapshotDeploymentRepository,则将使用它; - 否则,如果已指定 altDeploymentRepository,则将使用它; - 否则,如果已在 POM 元素<distributionManagement><snapshotRepository>中声明快照远程存储库,则将使用该存储库;
  • 如果在 <distributionManagement><repository> POM 元素中声明了发布远程仓库,则会使用该仓库;
  • 否则,插件将报错,因为未找到可部署的远程仓库。

  • 网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接