到目前为止,我一直在使用tomcat和glassfish在没有maven的情况下开发测试Webapp。通常的开发-部署-部署周期很简单:

  • 在eclipse ide中开发,带有WebContent文件夹,该文件夹是具有WEB-INF,web.xml,WEB-INF/lib等所有内容的根webapp文件夹。 eclipse中已编译的类位置设置为WEB-INF/classes。
  • 编码后,我可以在glassfish管理控制台中单击特定Web应用程序的“重新加载”按钮。我相信在tomcat中,它也会在tomcat管理器中重新加载。
  • 我可以在浏览器
  • 中访问Web应用程序

    现在,如果我想创建一个新的webapp,它将利用jsf,spring,jpa,hibernate,postgresql的最新内容:
  • 在创建项目时应使用什么原型(prototype)建议?
  • 我仍然可以使用以前的开发步骤吗?因为我认为这很容易,而不必每次都将所有内容重新打包到war文件中或将其复制到tomcat的webapp文件夹中。将文件保存在eclipse中,点击管理控制台/tomcat管理器中的重新加载,我可以立即测试更新的webapp。

  • 或者,您通常在webapp开发周期中做什么?请分享您的经验,=)

    谢谢 !

    最佳答案

    与Maven和好友的开发周期

  • 使用Maven驱动您的代码构建,测试,部署,发布周期。
  • 以最适合您的Web应用的Maven Archetype开头。这将为您创建整个文件夹结构,并添加Jar依赖关系。
  • 使用像Jetty这样的嵌入式轻量级服务器,这将在开发机上非常快速,而不会占用资源,并且是高度可配置的。另外,您可以将其设置为自动重新加载更改。
  • 大多数Maven项目都应该由测试驱动。 Maven负责使用它的surefire plug-in。因此,每个构建都将有一个测试阶段。
  • 您可以为各种环境(测试,开发,生产,Win,Unix ..)定义多个配置文件。这些配置文件将更改项目的行为以使其与环境兼容。
  • 使用Cargo,再次使用一个Maven插件将您的构建部署到测试或生产服务器上,该服务器可以是Glassfish,Tomcat,Jetty或任何其他Web服务器。
  • 使用Liquibase with or without Maven :)来管理数据库更改,就像管理代码更改一样。

  • 我来自与您之前的公司几乎类似的项目。使用Maven进行开发可以使事情变得如此顺利,并且变化是显而易见的。

    Google进行的一次小型搜索显示,有人在为JSF and JPA with Spring设计原型(prototype)

    编辑#1-添加了更多详细信息

    可行性和易用性
  • Maven是出于简化大型分布式代码的开发过程而生的。
  • Maven与Eclipse很好地集成在一起-因此很轻松。
  • Jetty继续监视源文件夹,因此您的更改几乎立即被部署。
  • 您可以自定义构建以跳过测试,而不构建依赖项。当您仅编辑UI组件时,Jetty会将其静默复制到“目标”文件夹中。
  • 如果您担心复制和重新部署。您必须read THIS来查看事情的完成效率,并记住不必在每次更改JSP或HTML时都进行编译-测试-部署。

  • 话虽如此,我想提一下Maven可能是一项具有挑战性的学习。可以说,这是一种面向对象的开发周期方式。我们大多数人习惯于构建脚本,最初可能会觉得乏味/冗长。

    资源

    我建议仔细阅读以下资源
  • Maven Book-Maven基础
  • Automated Deployment with Maven - going the whole nine yards如果可以的话,请遵循以下模式。
  • Maven 2 Effective Implementation-这本书确实对我们有很大帮助。
  • 10-07 19:27
    查看更多