java web应用程序的最佳实践

Jer*_*emy 5 html java eclipse apache tomcat

我正在试图找出开发和发布一个相当简单的Web应用程序的最佳方法,而且我遇到了几个问题.我将概述我所做出的决定,因为在某个地方,我显然已经脱离了轨道.非常感谢任何帮助!

我认为这是一个相当简单的Web应用程序.它包含一些引用几个java bean的jsps,以及通常的静态html,js,css和images.

决定1)我希望有一个清晰,干净的发布程序,这样我就可以在我的本地机器上进行开发,然后可靠地发布到生产机器上.因此,我决定将应用程序打包成war文件(包括所有静态资源),以最小化我需要释放的单独的部分.到现在为止还挺好?

决定2)我希望本地机器上的东西尽可能与生产环境相似.因此,在我的html中,我可能会引用一个静态文件,例如http://static.foo.com/file.为了使这段代码能够在dev和prod上无缝工作,我决定在本地开发时将static.foo.com放在我的/ etc/hosts中,这样所有的url都能正常工作而不会改变任何东西.

决定3)我决定使用eclipse和maven为我提供管理和构建项目的最佳实践环境.

所以我现在有一个很好的紧凑设置,除了:

每次我想改变开发中的任何东西,比如html文件中的一行,我必须重建整个项目然后等待tomcat加载战争才能看出它是否是我想要的.所以我的问题是:

1)有没有办法连接eclipse和tomcat,这样我每次都不需要重建战争?即tomcat直视我的实际工作空间来提供静态文件?

2)我认为通过使用/ etc/hosts来反映生产网址可能会让事情变得更难 - 是否有更好的方法不涉及手动更改网址(相对网址当然很好,但是你有很多子网域的地方) ,一个用于静态文件,一个用于动态,你必须写出完整的路径,当然?)

3)这真的是最好的做法吗?人们如何设置,以便一方面平衡自动化,无所不包的构建过程的需求,以及能够快速开发javascript和html和css的速度和灵活性,就像一个刚刚指出的那样快apache在目录下开发了吗?人们发现了什么?

非常感谢!

编辑:非常感谢您的回复!如果我能把它们标记好,我会......这真的帮助了我.我所听到的是,最佳实践是在开发中保留webapp的结构,并在尽可能接近生产的环境中运行它.似乎人们之间的差异在于人们准备将资源热部署到servlet容器的程度,以及为了一点额外的速度或便利而绕过构建过程.那讲得通.再次感谢.

wha*_*ley 3

为了回答#1,我建议如下:

  1. 花一些时间学习 Maven 来构建你的 .war 而无需 Eclipse。有了正确的原型,这并不难。有关更多详细信息,请参阅此处:http://maven.apache.org/guides/mini/guide-webapp.html
  2. Maven可以通过mvn eclipse:eclipse或使用m2插件生成eclipse项目
  3. 要部署到本地计算机和生产环境,请使用 Maven 货物插件。 http://cargo.codehaus.org/Maven2+pluginhttp://blank.jasonwhaley.com/2010/03/automated-deployment-with-cargo-drive.html

要回答问题#2,修改 /etc/hosts 文件来模拟生产并没有什么问题。只需有一个快速脚本,让您添加/删除这些条目并刷新您的 dns 缓存。我一直都是这么做的。(请务必通过相关设置让您的浏览器经常清除缓存)。

回答问题#3)是的,这就是你应该做的事情。每个构建都应该生成一个可部署的工件,您可以将其一步部署到任何环境。您需要确保无需 IDE 即可完成此操作,并且仅将 IDE 用作在开发阶段为您提供帮助的工具。