2

嗨,我有一个 Maven 项目,需要在集成测试开始之前将 2 场战争部署到码头环境。这些战争在正常意义上不是项目的依赖项,但它们需要单独部署以使集成测试发挥作用。

我通过为 2 场战争添加测试依赖项来做到这一点。然后我使用 maven-dependency-plugin 的 copy-dependencies 目标将战争复制到一个新目录并剥离它们的版本号,以便码头可以使用 org.mortbay.jerry.jetty-maven-plugin 找到并部署它们作为预集成测试阶段。

我的问题是,尽管事实上新的依赖项是测试范围,maven 仍然将它们覆盖到这个项目战争中。

有谁知道如何添加对仅下载依赖项但不对其进行任何操作的战争的依赖项?

4

1 回答 1

1

我会通过为集成测试创建一个单独的 Maven 模块来做到这一点。完成此操作后,您可以将<packaging>类型设置为pom,从而消除 WAR 覆盖的问题。只需将两个集成测试 WAR 作为依赖项以及您需要测试/验证的 WAR 包括在内。

这样做还可以将构建过程与集成测试过程完全分离,这可以在其他方面有所帮助。

如果您不喜欢这个想法,那么使用 WAR 插件的<dependentWarExcludes>配置将您的测试 WAR 排除在您的 WAR 包装之外。有关详细信息,请参见此处:

http://maven.apache.org/plugins/maven-war-plugin/examples/war-overlay.html

于 2012-08-30T14:44:09.363 回答