【问题标题】:How to handle multiple test environments in maven?如何在maven中处理多个测试环境?
【发布时间】:2016-06-26 17:04:54
【问题描述】:

我正在使用 maven 构建一个项目,我需要确保它可以在 Java SE 和不同的 Java EE 容器上运行。已经为 WildFly 容器编写了集成测试。现在我正在迁移到 Java SE。

但是面对如此多的测试环境,我应该如何在 maven 中处理它们?我应该使用<profile><module> 还是别的什么?

  • <profile> 可用于在不同配置文件之间切换,并且每个配置文件都可以有其特定的依赖关系。所以就我而言,可能有配置文件:wildfly-embeddedwildfly-managedjava-se 等。但我需要确保项目适用于每个配置文件,是否可以在一个命令中运行所有配置文件?

  • <module> 可以处理项目继承。在阅读了SO • Why and when to create a multi-module Maven project? 的帖子后,我仍然对是否应该在我的情况下使用它感到困惑。

有人可以给我一些想法吗?这将非常有帮助,谢谢。

【问题讨论】:

    标签: java maven testing


    【解决方案1】:

    如果您牢记无论激活的配置文件如何,生成的工件都​​应该始终相同,那么您应该了解配置文件不是正确的解决方案(尽管它经常被滥用。不要尝试去对于那个建议!) 配置应该在工件之外,因此您可以一遍又一遍地重用相同的工件。由于许多人要求采用嵌入式配置的适当解决方案,因此 Karl Heinz 创建了https://github.com/khmarbaise/multienv-maven-plugin。这可能是您最接近有效的 Maven 项目设置的方式。

    【讨论】:

    • 感谢您的建议,@RobertScholte。我同意你关于个人资料的看法,所以我会避免使用它。至于 Karl Heinz 的项目,这是一个有趣的插件,但我正在寻找没有额外“依赖”的原生插件。
    • 额外的“依赖”是什么意思?
    • 我猜这是关于附加/分类的工件。在这种情况下,您需要让 Maven 只做构建部分。让进行测试的进程(例如 Jenkins)负责嵌入正确的配置。
    • @RobertScholte,实际上,我的意思是我不希望任何插件这样做,因为我是 Hibernate 的实习生,我不确定他们是否准备好将插件添加到他们的框架中.他们已经处理了不同环境的测试,例如所有数据库、所有容器。所以我必须遵循这些结构并在添加我的提交时添加我自己的测试用例。但是,当您是新手时,很难理解他们的 pom ...
    • 据我所知,我们可以将一个项目分成多个模块。然后我们可以创建一个用于 Java SE 集成测试的模块,另一个用于 Java EE 集成测试的模块。这是个好方法吗?
    猜你喜欢
    • 2021-05-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2019-07-24
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多