使用Maven,Tomcat/Glassfish,Archetype进行高效的开发循环?

ber*_*tie 5 eclipse jsf spring hibernate maven

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

  1. 使用WebContent文件夹在eclipse ide中开发,该文件夹是具有WEB-INF,web.xml,WEB-INF/lib,n all的根webapp文件夹.eclipse中编译的类位置设置为WEB-INF/classes.

  2. 在编码之后,我可以点击glassfish管理控制台中针对该特定webapp的重新加载按钮.在tomcat中,我相信它也会在tomcat管理器中重新加载.

  3. 我可以在浏览器中访问Web应用程序

现在,如果我想创建一个新的webapp,那将使用jsf,spring,jpa,hibernate,postgresql的最新东西:

  1. 我应该在创建项目时使用什么样的原型?

  2. 我还能使用我之前的开发步骤吗?因为我认为这很容易,无需将所有内容重新打包成war文件,或者每次我想测试时将其复制到tomcat的webapp文件夹中.在eclipse中保存文件,点击管理控制台/ tomcat管理器中的重新加载,我可以立即测试更新的webapp.

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

谢谢 !

Nis*_*ant 6

与Maven和朋友的发展周期

  1. 使用Maven来推动代码构建测试 - 部署 - 发布周期.
  2. 从最接近您的网络应用程序的Maven Archetype开始.这将为您创建整个文件夹结构,并将添加Jar依赖项.
  3. 使用像Jetty这样的嵌入式轻量级服务器,这将在开发机器上非常快速,无需吸收资源,并且具有高度可配置性.另外,您可以将其设置为自动重新加载更改.
  4. 大多数Maven项目都应该是测试驱动的.其中Maven负责使用它的万无一失的插件.因此,每个构建都将进行测试阶段.
  5. 您可以为各种环境定义多个配置文件(test,dev,prod,Win,Unix ..).这些配置文件将改变项目的行为以与环境兼容.
  6. 使用Cargo,再一个Maven插件,在测试或生产服务器上部署您的构建,可以是Glassfish,Tomcat,Jetty或任何其他网络服务器.
  7. 使用或不使用Maven :) 使用Liquibase来管理数据库更改,就像管理代码更改一样.

我来自与之前公司几乎相似的项目.Maven的开发使事情变得如此顺利,变化也很明显.


一个小小的谷歌搜索显示,有人使用SpringJSF和JPA制作了原型


编辑#1 - 添加了更多细节

可行性和易用性

  • Maven 出于简化大型分布式代码的开发过程的必要性.
  • Maven 与Eclipse集成得非常好 - 所以它很轻松.
  • Jetty会一直监视源文件夹,因此几乎可以立即部署更改.
  • 您可以自定义构建以跳过测试,而不构建依赖项.当您只编辑UI组件时,Jetty将以静默方式将其复制到"target"文件夹.
  • 如果您担心复制和重新部署.您必须阅读本文以了解事情的完成效率,请记住,每次更改JSP或HTML时都不必进行编译 - 测试 - 部署.

也就是说,我想提一下,Maven可能是一个挑剔的学习.这是一种面向对象的开发周期方式.我们大多数人,习惯于构建脚本,最初可能会发现有点乏味/冗长.

资源

我建议通过以下资源