我们有无数的Java项目,这是CI建有詹金斯。 这些被部署到我们自己的Nexus服务器就好了。 问题是,我们需要提供这些库给第三方,但没有源代码。 因此,对于每一个项目,在我们的Nexus有:
- 发布资料库为我们的开发人员(包括部署的源代码)
- 快照库为我们的开发人员(包括部署的源代码)
- 第三方版本库(仅JAR + POM)
- (和将是很好的):第三方每晚构建第三方快照库(仅JAR + POM)
现在的问题是:这是怎么一般在詹金斯/的Nexus世界如何处理? 我宁愿在詹金斯一个单一的工作,其处理CI建立和释放(假象部署)过程中“自动”。 目前我使用多个<distributionManagement>
在我们的“主根的pom.xml”(所有项目包括)简介:
[...]
<profiles>
<profile>
<id>default</id>
<distributionManagement>
<repository>
<id>releases</id>
<name>Release</name>
<url>http://path/to/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Snapshot</name>
<url>http://path/to/nexus/content/repositories/snapshots/</url>
<uniqueVersion>false</uniqueVersion>
</snapshotRepository>
</distributionManagement>
</profile>
<profile>
<id>third-party</id>
<distributionManagement>
<repository>
<id>releases</id>
<name>Release</name>
<url>http://path/to/nexus/content/repositories/third-party/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Snapshot</name>
<url>http://path/to/nexus/content/repositories/third-party-snapshots/</url>
<uniqueVersion>false</uniqueVersion>
</snapshotRepository>
</distributionManagement>
</profile>
</profiles>
从Maven的文档,这似乎是不相同的构建生命周期中使用多个存储库,更何况一个事实,即我们需要/不需要基于目标回购源的方式。
我可以做一个把戏与创造詹金斯作业,使用Maven“的目标和选项”: clean deploy -P third-party
,然后添加生成后的行动- “部署文物,Maven仓库”与“默认”数据-但在这种情况下,只有快照要既回购,并通过发布文物詹金斯的Maven发布插件正在进入只有一个存储库。
任何实际的想法,而不过分复杂我们CI工作层次我该怎么办呢?
提前致谢!