簡體   English   中英

構建配置:Java后端(Spring + Maven)和JS項目(Angular)

[英]build configuration : Java backend (Spring + Maven) with JS project (Angular)

我們希望改善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),正在處理瀏覽器中的“ Access-Control-Allow-Origin不允許使用null原點”消息。 .hml)和Java App服務器位於localhost:8080上。我們可以關閉瀏覽器安全性或修改標頭以允許跨源請求,但我們認為這不是實現此目的的好方法。

我們不希望在/ src / main / webapps /中的Java項目中包含JS資源,因為在生產環境中,應用程序將部署在不同的機器上,並且每個應用程序都有自己的構建服務器。

您有類似項目配置的經驗嗎? 您會向我們推薦什么?

同時,我們將嘗試使用Tomcat 7來檢查它是否可以例如在Java應用程序的上下文之外提供外部靜態資源(js內容)

出於開發目的,我將讓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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM