Java 如何在maven中处理多个测试环境?

Java 如何在maven中处理多个测试环境?,java,maven,testing,Java,Maven,Testing,我正在使用maven构建一个项目,我需要确保它在JavaSE和不同的JavaEE容器上工作。已经有为WildFly容器编写的集成测试。现在我要转到JavaSE 但是面对这种多测试环境,我应该如何在maven中处理它们呢?我应该使用,还是其他什么 用于在不同的配置文件之间切换,每个配置文件都有其特定的依赖关系。因此,在我的例子中,可能会有一些配置文件:wildfly embedded、wildfly managed、javase等等。但我需要确保项目在每个配置文件上都有效,是否可以在一个命令中运

我正在使用maven构建一个项目,我需要确保它在JavaSE和不同的JavaEE容器上工作。已经有为WildFly容器编写的集成测试。现在我要转到JavaSE

但是面对这种多测试环境,我应该如何在maven中处理它们呢?我应该使用
还是其他什么

  • 用于在不同的配置文件之间切换,每个配置文件都有其特定的依赖关系。因此,在我的例子中,可能会有一些配置文件:
    wildfly embedded
    wildfly managed
    javase
    等等。但我需要确保项目在每个配置文件上都有效,是否可以在一个命令中运行所有配置文件

  • 可以处理项目继承。读完这篇文章后,我仍然对是否应该在我的案例中使用它感到困惑


有人能给我一些想法吗?那将非常有帮助,谢谢

如果您记住,无论激活的配置文件是什么,生成的工件都应该是相同的,那么您应该理解配置文件不是正确的解决方案(尽管它经常被滥用。不要尝试接受这个建议!)
配置应该在工件外部,这样您就可以一次又一次地重用同一工件。由于许多人要求使用嵌入式配置的适当解决方案,Karl Heinz创建了一个。这可能是最接近有效的Maven项目设置。

谢谢您的建议,@robertscholet。我同意你的观点,所以我会避免使用它。至于Karl Heinz的项目,这是一个有趣的插件,但我正在寻找没有额外“依赖性”的本地插件。你说的额外“依赖性”是什么意思?我想这是关于附加/分类工件的。在这种情况下,你需要让Maven只做建筑部分。让进行测试的流程(例如Jenkins)负责嵌入正确的配置。@Robertscholet,实际上,我的意思是我不想让任何插件这样做,因为我是Hibernate的实习生,我不确定他们是否准备好将插件添加到他们的框架中。它们已经在不同的环境中处理测试,例如所有数据库、所有容器。所以我必须遵循这些结构,在添加提交时添加自己的测试用例。然而,当你是新手时,很难理解他们的pom…据我所知,我们可以将一个项目分成多个模块。然后,我们可以在JavaSE中为集成测试创建一个模块,在JavaEE中为集成测试创建另一个模块。这是一个好方法吗?