2013-07-12 111 views
1

我們希望改進Java + JavaScript項目的構建配置/集成。構建配置:使用JS項目(Angular)的Java後端(Spring + Maven)

  • 後端:Java應用程序,Spring框架,REST API + Maven作爲構建工具
  • 前端:HTML + CSS + JavaScript的,(基於ng-boilerplate項目模板 - 它分離好聽的所有模塊,服務指令,共享資產)和它的使用很少的JavaScript工具,如故宮,鮑爾,噶+咕嚕

區配置非常簡單 - 在不同的目錄中的每個項目:

/workspace 
    /JavaBackend 
    /JsFrontend 

問題在於開發人員在瀏覽器中處理「Origin null不允許通過Access-Control-Allow-Origin」消息,因爲它們從前端運行AJAX查詢(來自file://..../JSApp /build/index.hml),Java App服務器位於localhost:8080。我們可以關閉瀏覽器安全性或修改標頭以允許跨域請求,但我們認爲如何實現這一點並不好。

我們不希望有Java項目的內部JS資源/ src目錄/主/ webapps /目錄在生產環境中的應用程序將被部署在不同的機器和每個應用程序都有它自己的生成服務器。

您是否有類似項目配置的經驗?你會向我們推薦什麼?

與此同時,我們將試驗Tomcat 7以檢查它是否可以例如在java應用程序的上下文中提供外部靜態資源(js stuff)

+0

我可能會更喜歡你開始看這些教程適合你的要求我想=> http://www.youtube.com/watch?v=Sc2atFv_h_I&list=PL4gCdGOq-cxJrbRMWjrIvGhYqQO1tvYyX – webyildirim

回答

0

爲了開發目的,我要讓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 artefact從前端製作出來。它可以通過依賴於這樣的後端則包括:

<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