从Ant构建文件中选择Rev

时间:2015-06-23 15:51:46

标签: ant ivy

我希望通过live和dev限定符将jar发布到ivy来分离开发和生产环境。

我正在寻找一种方法来触发具有这些依赖关系的项目中的ivy,以便根据ant构建文件自动从这些环境中获取最新信息。

我是蚂蚁和常春藤的新手,如果有可能,我没有找到文件。

基本上,ant中的build-live会触发使用resolve-live的{​​{1}},但是我们还需要一个默认的,以便Eclipse环境中的开发人员通过插件自动获取依赖项。

1 个答案:

答案 0 :(得分:0)

您尚未说明您使用的是哪种类型的存储库。我将假设您使用Maven存储库管理器来管理您的发布存储库。其中一些支持远程工作流来管理我喜欢的内容"发布候选人" (例如,查看Sonatype Nexus提供的staging功能)

对于纯常春藤解决方案,我首先建议阅读best practice documentation,特别是标题为“#34;处理集成版本"”的部分。

发布新的常春藤模块版本时,可以设置status字段。开箱即用的常春藤支持"整合","里程碑"或"发布"但即使这些也可以是extended。状态是标签或元数据属性,显示在常春藤存储库中已发布的常春藤文件的info字段中。

这是如何工作的?发布模块时如下:

<ivy:publish resolver="???" pubrevision="1.0.1" status="integration">
   <artifacts pattern="build/artifacts/jars/[artifact].[ext]" />
   <artifacts pattern="build/artifacts/zips/[artifact].[ext]" />
</ivy:publish>

这表明版本1.0.1是集成版本。

然后启用您正在寻找的功能。 Ivy的dynamic revisions功能可用于自动下载具有特定状态的最新版本,如下所示:

<dependency org="acme" name="foo" rev="latest.integration" />

更新

将模块发布到存储库后,无法更改。这样做可能会破坏依赖该版本的构建。想想,如果你改变一个构建的状态如何沟通那个改变?相反,你使用&#34; status&#34;表明版本的稳定性。开源项目将经常发布几个&#34;一般可用性&#34;或者&#34;里程碑&#34;在最终批准的主要版本之前发布。

要执行您想要执行的操作,需要服务器端存储库文件管理。我建议看一下&#34; staging&#34;套房位于Sonatype Nexus。此功能将每个待处理版本保留在临时仓库中,直到它最终获得批准并合并到主要版本区域。