【问题标题】:Fast way to develop AngularJS in a Java environment在 Java 环境中开发 AngularJS 的快速方法
【发布时间】:2014-07-01 04:05:42
【问题描述】:

我目前正在开发一个基于 Java 的 Maven 项目,该项目具有 REST 后端模块并使用 Angular JS 作为前端,该前端使用后端存储数据。这两个模块相应地命名为“rest”和“web”,并在开发过程中作为 2 个单独的 war 文件部署到 glassfish 实例。 glassfish 在不同的机器上。

我的问题是这有点慢,尤其是在开发基于角度的前端时。修复一个小的拼写错误,打包,重新部署。没那么慢,但每个字符的变化或摆弄角度都会再浪费 20-30 秒。

我尝试过的一件事是使用 file:// 标记直接将源目录中的文件加载到浏览器中。只要它尝试调用由于CORS 而失败的REST 后端就可以了(我不记得确切的错误消息,它只是不起作用)。这种情况经常发生,所以这是不行的。

我愿意接受各种解决方案来开发 Angular,以便我可以立即看到我的更改,而不是每次都部署它?就像那个人在egghead 视频中所做的那样。

【问题讨论】:

    标签: angularjs maven


    【解决方案1】:

    我建议将您的 Angular JS 应用程序拆分为自己的单独项目,这将是 Netbeans 上的一个新 HTML5 项目。这样您就可以专注于各自项目中的纯后端和前端开发,而不必手动分离 war 文件。如果您使用 Jersey Access-Control-Allow-Origin in ajax call to jersey rest web services 定义 RESTFUL 服务,此链接将帮助您使 CORS 正常工作。或者您可以在前端项目中模拟数据。

    【讨论】:

    • 我绝对想避免模拟数据。我将 CORS 过滤器添加到我的 REST 项目并进行了部署,但是如果我想通过直接(!)通过 file:// 从源文件夹加载文件来使用浏览器中的 angular 项目,那么它仍然会失败。浏览器控制台中的错误:XMLHttpRequest 无法加载文件:///home/sloby/projects/project/java/web/src/main/webapp/template/profile_menu.html。仅 HTTP 支持跨源请求。这是指我的 ui-router 的模板文件。有什么建议吗?
    • 您不必直接在浏览器中引用文件。如果您将前端放在自己的项目中,您可以使用 glassfish 容器,或者如果您使用的是 Netbeans 嵌入式轻量级服务器。这样,代码实际上已部署并且可以执行 http 请求,但如果您进行简单的 html 或 javascript 更改,则不必继续重新启动服务器。一旦一切正常 localhost:port/home/sloby/projects/project/java/web/src/main/webapp/template/profile_me‌​nu.html 将工作并且你的 HTTP 请求应该被触发。我编辑了答案以显示我的配置。
    • 虽然我使用的是 IntelliJ Idea 并且花了一些时间才完成,但您为我指明了正确的方向,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-20
    相关资源
    最近更新 更多