使用java后端打包和部署单页应用程序
作者:互联网
我正在做一个有jee6后端的应用程序(仅限基于json的api)和许多客户端代码.它看起来像单页应用程序(这几天很酷的流行语).
我不确定如何构建我的代码库.我有几种方法可以考虑
>为后端和前端设置单独的项目 – 这意味着在纯java中使用后端部分,使用maven和所有内容,并使用所有js特定的构建工具等单独的前端.
>在一个项目中拥有所有内容,这样我就可以在服务器上部署一个存档(war)以及所有前端内容.我真的不喜欢那种方法……
如果我选择第一个,那么部署会怎样?我必须从这个前端部分构建另一个“war”存档并将其放在服务器上?
我找不到人们使用的任何做法.
解决方法:
我会把你的Javascript和CSS包留给WAR并使用像Wro4J这样的东西(我有自己的资产管道代码,我可以在某些时候共享).
为什么:
>为了简化开发,在运行servlet容器时编辑它们时,需要刷新Javascript / CSS. Maven,Eclipse(和/或JRebel)资源刷新不适用于奇怪的包管理.
>对于仅Javascript / CSS的缩小,没有像WAR / JAR这样的东西(Require.js和JAM更多用于依赖加载).
在单独的项目/ jar中使用单独的Java代码的原因是为了避免耦合,改进重用并增加内聚力.你想要分离的主要是为了凝聚力.在很大程度上,您不需要将Javascript与Web App分开,因为它可能与Java非常独立,并且是完全不同的语言/运行时.
但是我可以理解,如果你想要CDN你的JS / CSS以及为什么分离代码可能更容易进行实验.
这有两个选择:
> Git’s submodules并将Javascripts和CSS作为单独的项目,这些项目是WAR项目的子模块.
>有两个WAR项目.一个用你的后端Java代码,另一个用你的前端代码.您将需要一个支持多个WARS的容器,您将担心管理可怕的servlet容器上下文路径.
我实际上在我以前工作过的公司做过#2号(嘲笑那个).它工作得很好.然而现在我更喜欢#1的快速和轻松(嘲笑那个).
标签:java,javascript,build-process,singlepage 来源: https://codeday.me/bug/20190625/1286945.html