到目前为止,我一直在使用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-这本书确实对我们有很大帮助。