【问题标题】:Add test jars in maven-jetty-plugin or create test-war with maven-war-plugin在 maven-jetty-plugin 中添加测试 jar 或使用 maven-war-plugin 创建测试战
【发布时间】:2013-01-20 17:13:08
【问题描述】:

我正在使用 maven 构建一个多模块 webapp。我想在他们自己的模块中运行我的集成测试并使用码头插件。为了让一切正常工作,我需要在战争的类路径中添加几个 jar,但我在文档 http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#deploy-war-running-pre-assembled-war

中看不到这样的选项

我能够部署战争,但它失败了,因为它缺少我需要添加的两个罐子。

有没有办法让我在插件配置中添加几个额外的 jar?

如果没有,我有没有办法像在 maven 中使用 test-jar 一样打包“test-war”?

【问题讨论】:

    标签: maven integration-testing maven-jetty-plugin


    【解决方案1】:

    将依赖项直接添加到插件的<dependencies/>。不需要范围或任何东西——它们不会进入你的最终工件,而是——仅在执行期间由 Jetty 插件使用。

    【讨论】:

    • 今晚我才能测试它。在这种情况下,它们是添加到容器类路径还是 webapp 类路径中?
    • 嗯,这样是容器,但我相信还有一种方法可以定义额外的类路径。
    • 嘿,这是我的问题。我愿意相信有一种方法,但方法是什么? jetty 插件的“deploy-war”目标文档非常少。
    【解决方案2】:

    有多种方法可以使用 jetty-maven-plugin 扩展 Web 应用程序类路径。最适合您的是在插件配置的 webAppConfig 块中设置 extraClasspath 字段:

    <configuration>
     ...
     <webAppConfig>
      ...
      <extraClasspath>path/to/your/custom-dependency.jar</extraClasspath>
     </webAppConfig>
    </configuration>
    

    文档对此不是很一致。不过javadoc还是很清楚的。

    你可以在我的jetty plugin wiki page找到相关的配置示例。

    【讨论】:

    • 不错的页面,但是您可以在非战争包装类型的模块中使用 deploy-war 将 webAppConfig 用于战争吗?好像我试过了,但没有用。我最终放弃并将集成测试移回我的战争项目。
    • 我会说是的,但我还没有测试过。我认为最好的办法是为您的集成测试打包一个自定义战争。您可以通过使用战争覆盖功能将您的生产战争包含到您的测试战争中来做到这一点,或者更好的是,您可以使用 maven 分类器将它们打包在同一个项目中。见this link
    猜你喜欢
    • 2012-02-11
    • 1970-01-01
    • 2011-02-28
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多