Maven:处理真正的循环依赖

时间:2012-12-03 12:03:58

标签: maven circular-dependency

我的情况有点复杂,我不确定设置Maven环境的最佳方法是什么。

我正在编写一个框架,允许为特定系统创建测试。系统可以托管各种应用程序,我为每个应用程序提供了一组测试,我希望将它与框架分开(它处理"测试"的一般概念,和消息发送/接收等)。此外,该框架提供了一个通用UI,因此它可以构建为战争并部署,允许您运行和配置测试。

我目前正在做的是将框架作为jar和war构建,将框架列为每个应用程序测试套件中的依赖项,并使用覆盖引入所有框架代码,以便每个套件都可以构建它部署战争。这很糟糕。

我想要的是能够指定(可能通过配置文件)在框架中构建哪些测试套件,并最终得到包含指定套件的单个framework.war文件。试图为此构建poms我继续遇到循环依赖,因为:

  • 要构建测试,测试项目必须依赖于框架
  • 要引入指定的测试jar,框架必须依赖于那些测试项目

我尝试的事情:

  • 制作框架的测试套件子项目:
    • 这不起作用(我认为)我不能将最终结果打包为战争(只有聚合器项目的pom包装)
  • 将测试.jars列为系统依赖项:
    • 这很有效,但是必须手动指定jar的路径
  • 将测试作为java包放在框架中,并通过过滤器只编译你想要的东西:
    • 技术上可行,但我真的更喜欢将逻辑分离成单独的maven项目,因为每个测试套件也可以配置,并且我希望将所有配置保留在框架pom之外

什么是理想的父母项目pom:

  1. 编译没有测试的框架
  2. 编译指定的测试套件
  3. 重建框架.war,包括指定的测试套件jars
  4. 我不确定这是否可行和/或是否可取,但对我来说这似乎是最好的解决方案。提前感谢您组织此项目的任何建议。

0 个答案:

没有答案