【问题标题】:build configuration : Java backend (Spring + Maven) with JS project (Angular)构建配置:Java 后端(Spring + Maven)和 JS 项目(Angular)
【发布时间】:2013-07-10 20:51:54
【问题描述】:

我们希望改进 Java + JavaScript 项目的构建配置/集成。

  • 后端:Java 应用、Spring 框架、REST API + maven 作为构建工具
  • 前端:HTML + CSS + JavaScript,(基于 ng-boilerplate 项目模板 - 它很好地分离了所有模块、服务、指令、共享资产) 并且它使用了一些 JavaScript 工具,例如 npm , Bower, Karma + Grunt

工作区配置非常简单 - 每个项目都在单独的目录中:

    /workspace
     /JavaBackend
     /JsFrontend 

问题是开发人员在从前端运行 AJAX 查询时(来自 file://..../JSApp/ build/index.hml) 并且 Java App 服务器位于 localhost:8080。我们可以关闭浏览器安全性或修改标头以允许跨源请求,但我们认为这不是实现这一点的好方法。

我们不希望在 /src/main/webapps/ 中的 Java 项目中包含 JS 资源,因为在生产环境中,应用程序将部署在不同的机器上,并且每个应用程序都有自己的构建服务器。

您有类似项目配置的经验吗?您会向我们推荐什么?

同时,我们将尝试使用 Tomcat 7 来检查它是否可以,例如在 Java 应用程序的上下文之外提供外部静态资源(js 东西)

【问题讨论】:

  • 我可能更喜欢你开始观看这些适合你的教程我猜=> youtube.com/…

标签: angularjs spring maven build-process


【解决方案1】:

出于开发目的,我会让 Tomcat 通过<Context> 标签将前端文件夹包含在 server.xml 中。该文件夹可以是任意的,甚至可以在另一个存储库中(例如/GitRepos/ApplicationGui/app)。

...
      <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">    
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log." suffix=".txt"/>
        <Context docBase="/workspace/JsFrontend" path="/"/>
        <Context docBase="FlexibleOrders" path="/FlexibleOrders" reloadable="true" source="org.eclipse.jst.j2ee.server:FlexibleOrders"/>
      </Host>
    </Engine>
  </Service>
</Server>

在生产中,我建议从前端制作一个 Maven 工件。然后可以通过依赖项将其包含在后端,如下所示:

<dependency>
    <groupId>org.enterprise</groupId>
    <artifactId>application-gui</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency> 

有关生产的完整配置,请参阅此博客:

http://wiki.switajski.de/2016/01/24/how-to-create-maven-artifact-with-static-web-resources.html

【讨论】:

    猜你喜欢
    • 2018-01-14
    • 1970-01-01
    • 2016-01-22
    • 2016-09-27
    • 2017-07-24
    • 2018-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多