如何在哈德森构建一个eclipse动态Web项目

时间:2011-10-24 11:59:12

标签: java eclipse hudson eclipse-wtp

一段时间以来,我一直在哈德森成功使用maven项目。 但是这次我需要构建一个eclipse动态Web项目,通常在eclipse中构建,然后将war输出到生产中。如何在哈德森建立这个项目。

提前致谢!

1 个答案:

答案 0 :(得分:4)

如果您熟悉Maven,我建议您使用m2e-wtp插件 - 这样您就可以将Maven和WTP用于您的网络应用。它应该在m2e目录(Window> Preferences> Maven)中的某处,现在m2e转移到Eclipse Foundation,检查Maven/Tomcat Projects In Eclipse Indigo/3.7以获取更多信息。

  • Hudson / Jenkins只会将其构建为常规Maven项目,无需额外配置。
  • Eclipse将主要继续使用自己的工具和中间的一些Maven,但最重要的是它将从Maven获得任何依赖并将它们放在构建路径中

如果您已经在Eclipse中拥有动态Web项目,那么您可能需要移动一堆文件夹以在Maven期望的结构中排列它们:

src/
    main/
        java/        -- your Java source files (servlets, actions, ...)
        resources/   -- your resource files (struts.xml, log4j.xml, NOT web.xml)
        webapp/      -- your web root (previously WTP's WebContent/)
            WEB-INF/ -- your WEB-INFt (web.xml)
    test/
        java/        -- your Java test cases
        resources/   -- your test resource files
pom.xml

<packaging>设置为war,以便Maven知道它应该将您的依赖项放入WEB-INF/lib/并构建WAR。

对于依赖项,您可能需要Servlet API:

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>servlet-api</artifactId>
  <version>2.5</version><!-- change version as needed -->
  <scope>provided</scope><!-- Mind the scope!-->
</dependency>

provided范围进行注意:Servlet规范禁止Web应用程序在WEB-INF/lib中携带自己的Servlet API JAR,并且符合Web的容器将拒绝加载您的Web应用程序(在这种情况下)将在他们支持的版本中提供JAR。

最好从右键单击动态Web项目开始,然后转到Maven&gt;转换为Maven项目,然后如上所示移动文件夹,然后浏览m2e和m2e-wtp插件向您抛出的所有警告(大多数提供quickfix)。