簡體   English   中英

如何在許多Web應用程序之間共享公共資源?

[英]How to share common resources between many webapplications?

我有4個Web應用程序。 但圖像,CSS,javascripts是相同的。 當我需要將更改傳播到所有項目后,我在一個項目中進行更改。 什么是最好的方法 - 只使用資源創建公共jar或使用類似於SVN中的鏈接的東西? 謝謝。

我有相同的要求,並使用Bower和一個小的Perl腳本得到了我需要的東西。

在您的共享項目中執行簡單文件復制的問題是,如果將來出於任何原因需要您的某個項目暫時稍微修改一個版本,您實際上將破壞項目或部署例程。 通過將項目放在他們自己的版本控制的存儲庫中來管理項目共享資源是一種更清潔的方式,因此每個項目都可以引用特定版本“最新”或“1.0.0”等...現在解決方案:

Bower是一個包管理器,除其他外,它可以幫助管理git存儲庫的檢索/依賴。 您可以從網址或驅動器上的本地路徑獲取git存儲庫。 因此,需要在項目之間共享的所有文件都將它們放在各自的git存儲庫中。 然后,Bower可以獲取特定版本的共享內容。 唯一的問題是,涼亭將它們全部復制到一個特定的子目錄中,這並不總是理想的。

腳本( bower-redeployer然后我使用這個perl腳本將獲取的共享資源部署到我項目中的正確位置。

推薦user710818的評論回答)

請考慮使用Maven WAR插件的疊加功能,如以下鏈接中所述。 從第一個鏈接,

覆蓋用於跨多個Web應用程序共享公共資源。 WAR項目的依賴關系收集在WEB-INF / lib中,但WAR項目本身覆蓋的WAR工件除外。

  1. http://maven.apache.org/plugins/maven-war-plugin/overlays.html
  2. http://java.dzone.com/articles/mavens-war-overlay-what-are
  3. http://www.manydesigns.com/en/portofino/portofino3/tutorials/using-maven-overlays

幾個建議......

  • 將它們放在一個通用的jar文件中
  • 將它們放在共享的URL上

使用maven資源插件,您可以指定復制資源目標,該目標將在構建war文件之前將公共資源復制到指定的項目中。

我還看到在構建期間使用了一個名為links( ln -s )的公共目錄。 這避免了創建資源的物理副本的空間和時間負擔。

暫無
暫無

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

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