【发布时间】:2023-04-07 11:11:01
【问题描述】:
我正在尝试修改我的构建过程,以便在我的个人项目中使用 ant 和 apache ivy。它们由一些共享模块和一些依赖于共享模块的应用程序模块组成。为了这篇文章,让我们简化一下,假设我有一个共享模块 (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 以指定最新版本的最新集成)。我的意图是使用 ivy buildlist 任务来查找在构建应用程序之前需要构建的本地模块。但是这不起作用,因为buildlist 任务似乎包含 common/build.xml 条目,无论应用程序的 ivy.xml 文件是否指定 latest.integration 或其他已发布的修订版。
如果有任何建议,我将不胜感激。我正在为 ivy 的文档和示例而苦苦挣扎,因此任何真实世界的示例也会有所帮助。注意:我对这里的 Maven 解决方案不感兴趣。
【问题讨论】:
标签: ivy