java web应用程序最佳实践
我试图找出开发和发布一个相当简单的web应用程序的最佳方法,但我遇到了几个问题。我将概述我所做的决定,因为我显然在某些方面偏离了轨道。。非常感谢您的帮助 我有一个我认为相当简单的web应用程序。它包含两个JSP,它们引用了两个JavaBean,以及常见的静态html、js、css和图像 决策1)我希望有一个清晰的发布程序,这样我就可以在本地机器上开发,然后可靠地发布到生产机器上。因此,我决定将应用程序打包到一个war文件(包括所有静态资源)中,以最大限度地减少我需要发布的各个部分。到目前为止还好吗 决策2)我希望本地机器上的东西尽可能与生产环境相似。例如,在我的html中,我可能有一个对静态文件的引用,例如。为了让这段代码在dev和prod上无缝地工作,我决定在本地开发时将static.foo.com放在我的/etc/hosts中,这样所有的URL都可以正常工作,而不需要做任何更改 决策3)我决定使用eclipse和maven为我提供一个管理和构建项目的最佳实践环境 所以我现在有了一个很好的紧的装置,除了: 每次我想更改开发中的任何内容,比如html文件中的一行,我都必须重新构建整个项目,然后等待tomcat加载war,然后才能看到它是否是我想要的。因此,我的问题是: 1) 有没有办法将eclipse和tomcat连接起来,这样我就不必每次都重建战争?ie tomcat直接查看我的实际工作区来提供静态文件 2) 我想我使用/etc/hosts来反映生产URL可能会让事情变得更难——有没有更好的方法不需要手动更改URL(相对URL当然可以,但是如果有很多子域,比如一个用于静态文件,一个用于动态文件,那么您必须写出完整的路径?) 3) 这真的是最佳实践吗??人们如何设置这些东西,以便一方面平衡对自动化、全方位构建过程的需求,另一方面平衡能够快速开发javascript、html和css的速度和灵活性,就像将apache指向目录并实时开发一样快?人们发现什么工作 非常感谢 编辑:谢谢大家的精彩回复!如果我能做好标记,我会。。这真的帮了我大忙。我所听到的是,最佳实践是在开发过程中保留webapp的结构,并在尽可能接近生产环境的环境中运行。看起来人与人之间的区别在于人们准备在多大程度上将资源热部署到servlet容器中,绕过构建过程以获得一点额外的速度或便利。这是有道理的。再次感谢。要回答#1,我建议如下:java web应用程序最佳实践,java,html,eclipse,apache,tomcat,Java,Html,Eclipse,Apache,Tomcat,我试图找出开发和发布一个相当简单的web应用程序的最佳方法,但我遇到了几个问题。我将概述我所做的决定,因为我显然在某些方面偏离了轨道。。非常感谢您的帮助 我有一个我认为相当简单的web应用程序。它包含两个JSP,它们引用了两个JavaBean,以及常见的静态html、js、css和图像 决策1)我希望有一个清晰的发布程序,这样我就可以在本地机器上开发,然后可靠地发布到生产机器上。因此,我决定将应用程序打包到一个war文件(包括所有静态资源)中,以最大限度地减少我需要发布的各个部分。到目前为止还好
MVNClipse:eclipse
或使用m2插件生成eclipse项目2) 不行,何塞。那么,你的意思是,每当服务器名称更改时,你都必须重新编译代码?如果您需要支持动态URL,您可能只想咬紧牙关,看看一个框架,为您完成繁重的工作。我喜欢(它支持即时动态URL重写)。。。还有其他的。这很像我在工作中必须做的事情,尽管我们使用ant(现在?)。此外,当我使用一个(或两个)IDE时,我拒绝在构建过程中使用IDE。需要有人能够理解并调整您的构建。其他人已经回答了您的问题,我将对此进行评论(顺便说一句,评论时间太长了,所以我会回答): 每次我想改变什么 在开发中,就像一条线中的一条线 html文件,我必须重建 整个项目,然后等待 tomcat在我之前就开始了战争 看看这是不是我想要的 如果更改html文件中的一行,则无需重新生成整个项目 请注意,我总是重建完整的.war并重新部署我的.war,但这只需要不到两秒钟的时间(不到0秒)