maven中的多个部署

Mau*_*uli 9 java maven-2 hudson artifactory

我们有一个内部的神器库.目前所有快照都将在那里部署.我们还希望拥有一个带有Web界面的不同服务器,并希望将创建的工件复制到其中.

对于我们的构建,我们使用Hudson,但是后构建操作"将构件部署到Maven存储库"与scp一起不起作用.所以有一个问题是以其他优雅的方式做到这一点.为什么maven不能拥有多个分发存储库?有任何想法吗?

最好的事情是,如果artifactory在每次新部署后都支持(自动!)增量导出到标准maven存储库.

jon*_*077 12

我不认为maven支持为单个配置文件部署到多个存储库,但是配置文件可能会更改存储库的id和url.

  <distributionManagement>
    <repository>
      <id>${repo-id}</id>
      <name>${repo-name}</name>
      <url>${repo-url}</url>
    </repository>
  </distributionManagement>
Run Code Online (Sandbox Code Playgroud)

Maven部署

然后使用配置文件选择要部署到哪个repo:

<profiles>
  <profile>
    <id>repo1</id>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
      <repo-id>repo1</repo-id>
      <repo-name>Repo1 Name </repo-name>
      <repo-url>http://url.com/maven2</repo-url>
    </properties>
  </profile>
  <profile>
    <id>repo2</id>
    <properties>
      <repo-id>repo2</repo-id>
      <repo-name>Repo2 Name </repo-name>
      <repo-url>http://url2.com/maven2</repo-url>
    </properties>
  </profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)

Maven个人资料

  • 谢谢!这对我来说很好用,有一个变化——如果你已经将配置文件用于其他事情,你可能需要基于属性的激活(例如`&lt;activation&gt; &lt;property&gt;&lt;name&gt;!repo2&lt;/name&gt;&lt; /property&gt; &lt;/activation&gt;` 来激活 repo2,与 ! for repo2 类似,然后只是 `-Drepo2`) (2认同)
  • 或者将`distributionManagement`直接放在`profile`定义中,如果你不想使用属性 (2认同)