【发布时间】:2011-02-18 21:57:52
【问题描述】:
我试图找出开发和发布一个相当简单的 Web 应用程序的最佳方法,但遇到了几个问题。我将概述我所做的决定,因为在某个地方我显然已经出轨了。非常感谢您的帮助!
我有一个我认为相当简单的网络应用程序。它包含几个引用几个 java bean 的 jsps,以及通常的静态 html、js、css 和图像。
决定 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,这样我就不必每次都重建战争? ie tomcat 是直接查看我的实际工作区来提供静态文件吗?
2)我想我可能会通过使用 /etc/hosts 来反映生产 url 让事情变得更难 - 有没有更好的方法不涉及手动更改 url(相对 url 当然可以,但是你在哪里有很多子域,一个是静态文件,一个是动态文件,你肯定要写出完整路径吗?)
3) 这真的是最佳实践吗?人们如何进行设置,以便他们一方面平衡对自动化、包罗万象的构建过程的要求,以及能够快速开发 javascript、html 和 css 的速度和灵活性,就像一个人刚刚指出的一样快apache在目录中并现场开发?人们发现什么作品?
非常感谢!
编辑:感谢大家的精彩回复!如果我能把它们标记好,我会的。这真的帮助了我。我听到的是最佳实践是在开发中保留 webapp 的结构,并在尽可能接近生产的环境中运行它。似乎人与人之间的差异在于人们准备将资源热部署到 servlet 容器中的程度,绕过构建过程以获得额外的速度或便利。这就说得通了。再次感谢。
【问题讨论】:
标签: java html eclipse apache tomcat