将工件部署到两个不同的存储库

时间:2013-07-05 15:59:35

标签: maven maven-3

目前在我的项目中,我通过提供分发管理将工件部署到中央存储库。

我的要求是我的pom版本有1.0-SNAPSHOT - 它应该部署到libs-snapshot和我的 pom版本只有1.0,它应该部署到libs-release。

基本上,它应该根据我提供的版本进行部署,有或没有快照和相应的存储库。

请帮助我如何配置将maven项目部署到两个不同的存储库并在settings.xml中进行配置。

提前致谢

1 个答案:

答案 0 :(得分:1)

您可以在分发管理部分中指定两个存储库。一个用于发布,一个用于快照。根据您的版本号,应使用相应的存储库进行分发。

您无法在settings.xml中配置此设置,您必须在pom.xml中对其进行配置。 See this link

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
  ...
  <distributionManagement>
    <repository>
      <uniqueVersion>false</uniqueVersion>
      <id>corp1</id>
      <name>Corporate Repository</name>
      <url>scp://repo/maven2</url>
      <layout>default</layout>
    </repository>
    <snapshotRepository>
      <uniqueVersion>true</uniqueVersion>
      <id>propSnap</id>
      <name>Propellors Snapshots</name>
      <url>sftp://propellers.net/maven</url>
      <layout>legacy</layout>
    </snapshotRepository>
    ...
  </distributionManagement>
  ...
</project>

取自POM Reference - Distribution_Management section的示例,您可以在其中找到有关它的更多信息。

如果您想共享多个项目的分发管理部分,this answer显示了一种通过使用pom打包的父项目在公司范围内指定它的方法。