2014-03-06 95 views
0

我有一個應用程序部署爲兩個獨立的Web項目 - w1 & w2。父項目P包含w1 & w2創建項目之間的依賴關係

已將代碼添加到w1中,該代碼使用w2上的代碼,因此我需要將w2添加到w1的類路徑才能使用此代碼。 每個Web項目都應該是自包含的,因此創建這種依賴關係是一種不好的做法?另外,這是maven項目,所以爲了 戰爭的構建,w2需要被創建爲依賴。我認爲這只是在項目之間的依賴管理問題上開放了很多問題。 我認爲應該創建一個獨立的jar項目,其中包含要共享的代碼,然後將其添加爲依賴項。

+0

_每個web項目都應該是獨立的,這意味着你自己做所有事情。我怕它不是這樣 – xyz

+0

檢查maven覆蓋,它可以幫助合併共享的web資源。但這是有點破解,真正的Web應用程序應該是獨立的。 – setec

+0

它不會這樣工作(使用從w1到w2的直接依賴關係)。戰爭依賴關係會自動作爲覆蓋應用(w1也會包含來自w2的所有內容)。但是,這在包裝階段中應用。所以在編譯期間,你的w2代碼不會被編譯器看到,即w1甚至不會編譯。請使用單獨的jar作爲依賴項。 – blackbuild

回答

1

是的,我會認爲這是不好的做法。在運行時正確隔離戰爭類裝載器的容器中,您會在w1項目中看到錯誤。如果你正在創建兩個獨立的戰爭,並希望重用一段代碼/功能,我會建議創建一個第三個項目,構建到包含該功能的jar。您的兩個Web項目可以將該庫作爲依賴包含在內。

1

是的。如果在w2中需要w1中的代碼組件,反之亦然,則應將這些組件提取到單獨的「公共」項目中,這兩個項目都依賴於這兩個項目。特別是因爲你也有其他的依賴(Spring等)