使用java后端打包和部署单页应用程序

时间:2012-12-14 14:17:47

标签: java javascript build-process singlepage

我正在做一个拥有jee6后端的应用程序(仅限基于json的api)和许多客户端代码。它看起来像单页应用程序(这几天很酷的流行语)。

我不确定如何构建我的代码库。我有几种方法可以考虑

  • 有后端和前端的单独项目 - 这意味着在纯java中有后端部分,有maven和所有这些东西,并且与所有特定于js的构建工具等有单独的前端。
  • 在一个项目中拥有所有内容,这样我就可以在服务器上部署一个存档(war),其中包含所有前端内容。我真的不喜欢那种方法......

如果我选择第一个部署,那么部署怎么样?我必须从这个前端部分构建另一个“war”存档并将其放在服务器上?

我找不到人们使用的任何做法。

1 个答案:

答案 0 :(得分:4)

我会把你的Javascript和CSS包留给WAR并使用类似 Wro4J 的东西(我有自己的资产管道代码,我可以在某些时候分享)。

为什么

  1. 为了简化开发,您需要在运行servlet容器时编辑它们时刷新Javascript / CSS。 Maven,Eclipse(和/或JRebel)资源刷新将不适用于奇怪的包管理。
  2. 对于仅Javascript / CSS缩小(Require.jsJAM更多的依赖加载,实际上没有像WAR / JAR这样的东西)。
  3. 在单独的项目/ jar中使用单独的Java代码的原因是为了避免耦合,提高重用率并增加内聚力。你想要分离的主要是为了凝聚力。在很大程度上,您不需要将Javascript与Web App分开,因为它可能与Java非常独立,并且是完全不同的语言/运行时。

    但是我可以理解,如果你想要CDN你的JS / CSS以及为什么分离代码可能更容易进行实验。

    以下是两个选项:

    1. Git's submodules并将Javascripts和CSS作为单独的项目,作为WAR项目的子模块。
    2. 有两个WAR项目。一个用你的后端Java代码,另一个用你的前端代码。您需要一个支持多个WARS的容器,您将担心管理可怕的servlet容器上下文路径。
    3. 我实际上在我以前的公司工作过#2号(笑那个)。它工作得很好。然而现在我更喜欢#1的速度和轻松(嘲笑那个)。

相关问题