0

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

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

我目前正在做的是将框架构建为 jar 和 war,将框架列为每个应用程序测试套件中的依赖项,并使用覆盖拉入所有框架代码,以便每个套件都可以构建自己的 war 进行部署。这太恶心了。

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

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

我尝试过的事情:

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

理想的情况是父项目 pom 将:

  1. 无需测试即可编译框架
  2. 编译指定的测试套件
  3. 重建框架 .war,包括指定的测试套件 jars

我不确定这是否可能和/或什至可取,但这对我来说似乎是最好的解决方案。提前感谢您对组织此项目的任何建议。

4

0 回答 0