【发布时间】:2011-03-02 04:42:49
【问题描述】:
我正在使用 ant+ivy+nexus 来构建和发布我的 java OSGi 项目(如果您不熟悉 OSGi,则只是好的旧 jar)。在与新技术接触时通常的思维融化期过后,我有了一个主要功能性的系统。但是,我现在有工件变化的两个维度:快照/发布和主/测试。
主要/测试维度确实不言自明。快照/发布对于以 maven 友好的方式发布到 nexus 是必不可少的。 (对于与开源 OSGi 运行时集成非常有用)。因此,我在每个项目的基础上都有以下工件,并且我有很多很多项目:
- project-revision.xml (bp)
- project-test-revision.xml (b)
- project-revision-SNAPSHOT.xml (bp)
- project-test-revision-SNAPSHOT.xml (b)
b = 成功构建 p = 成功发布 (我还没有正确发布测试内容)
在我的构建脚本中没有到处重复代码的情况下,我花了一段时间才做到这一点,但我已经做到了……有一个很大的警告。对于 SNAPSHOT 分支,我将“-SNAPSHOT”附加到所有修订版。在 ant 中,我设法以编程方式实现了这一点,但对于 ivy,我使用的是重复的 ivy.xml;常春藤-SNAPSHOT.xml。这有
<info ... revision="x.x-SNAPSHOT">
注意 -SNAPSHOT。没有这个,我永远无法得到我的
<ivy:deliver>
<ivy:resolve>
<ivy:publish>
正确发布工件和 maven pom 的命令链。 (记住我有一个要求让这个 maven 友好......如果我真的最终使用 maven 来构建它,我会被诅咒的!)
现在我一直在介绍测试/主要维度。理想情况下,我希望发布
project-test-revision(-SNAPSHOT).jar
(注意可选的快照)。我真的不想通过指定来做到这一点
<info ... module="project-test" ... >
与另一个常春藤文件中的<info ... module="project" ... > 不同。如果我走这条路(就像我已经开始一样),那么我最终会得到大量的 ivy-Option1-Option2...-OptionN.xml 文件。每个新的双值变体都会使构建和常春藤文件的数量增加一倍。那是废话。一定有更好的方法。我就是找不到。
如果您已经成功地从一个 ivy 文件中获得了带有修饰名称的 ivy 发布工件,您介意发布实现此目的的配置 sn-ps 吗?会非常有用。 (不要忘记 maven 不知道配置,所以我需要将变体放入文件名和 pom 中)。
非常感谢
阿拉斯泰尔
【问题讨论】:
标签: configuration ant publish ivy