gpt4 book ai didi

eclipse - 使用 Maven、Tomcat/Glassfish、Archetype 的高效开发周期?

转载 作者:行者123 更新时间:2023-12-04 18:52:03 26 4
gpt4 key购买 nike

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

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

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

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

    谢谢 !

    最佳答案

    Maven 和 friend 的开发周期

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

  • 我来自与你在我以前的公司几乎相似的项目。使用 Maven 进行开发使事情变得如此顺利,并且变化是可观的。

    一个小小的谷歌搜索显示有人研究过 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 ——这本书真的帮了我们很多。
  • 关于eclipse - 使用 Maven、Tomcat/Glassfish、Archetype 的高效开发周期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4658871/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com