我想修改我的构建过程使用Ant与我的个人项目的Apache常春藤建设。它们由几个共享模块和一些依赖共享模块的应用程序模块组成。对于这个帖子的缘故,让我们简化和说我有一个共享的模块(common
),并取决于common
应用模块(application
)。每个模块都有它自己的有效SVN仓库:如何使用常春藤/蚂蚁使用中间文物
svn_repo_1/common/trunk
/branches
/tags
svn_repo_2/application/trunk
/branches
/tags
我检查了相关修订成一个公共工作区,在平面结构:
workspace/common
workspace/application
一般来说,application
将取决于一个发布版本common
,所以建设application
时不需要搭建common
。
然而,当我需要新的功能添加到common
由application
需要,我会然后像application
为依赖于我的工作区的最新common
版本(无需发布常见到我的仓库)。
我认为这是latest.integration
的含义(即更改application
的ivy.xml以指定通用修订版的latest.integration)。我的意图是使用常春藤buildlist
任务来查找在构建应用程序之前需要构建的本地模块。但这不起作用,因为buildlist
任务似乎包括common/build.xml条目,无论应用程序的ivy.xml文件是否指定latest.integration或某个其他发布的修订。
我将不胜感激任何建议。我正在努力处理常春藤的文档和样本,所以任何现实世界的例子也会有所帮助。注意:我对这里的Maven解决方案不感兴趣。
感谢您的回复。我之所以不想在构建中间构建时发布'common'是因为我将ivysvn用于我的主存储库 - 因此已发布的构件会签入到单独的svn存储库中。我不想要一个通用的latest.integration.jar继续承诺。我喜欢你多个存储库建议的声音。我是否可以使用这两个存储库来解决问题,以便我的主ivysvn存储库中的第三方工件从那里解析,而我的common-latest.integration.jar是从本地目录存储库中解析出来的? – zorgbargle