2012-12-16 65 views
0

我有一個largish project,需要通過命令行界面或通過web-app使用。核心服務器部署爲10個獨立的罐子。該Web應用程序目前部署爲.war,但這是一個巨大的文件,它複製了所有的個人部署,並使得更新模塊成爲一個巨大的痛苦 - 每次更新任何內容時都必須重新部署這個巨大的.war文件,而且大部分時間我們都不使用網絡應用程序。在碼頭丟失了maven傳遞依賴關係:運行

所以我想部署一個「骨幹戰爭」,沒有依賴關係。然而,沒有.ear文件來承載它們,所以在運行時,我解壓縮戰爭並使用jetty:run,並使用classesDirectory和webAppSourceDirectory指向解壓縮的內容。這一切似乎工作。問題在於,來自web-app模塊的依賴關係並未將其放入jetty:run的類路徑中。當我使用jetty時:運行在web-app模塊中,類路徑包括所有父,本地和傳遞依賴項。但是當我使用jetty時:在依賴於web-app模塊的「分發」項目中運行,進入classpath的唯一依賴項來自父模塊,而不是來自web-app模塊。請注意,Web應用程序模塊是分配模塊中唯一的本地依賴項。

我錯過了什麼?

回答

1

如果我正確地理解你,你的問題是Maven doesn't resolve transitive dependencies for war dependencies

+0

沒錯。我沒有把那個翻過來 - 謝謝!所以也許我需要將這些依賴關係移出到單獨的pom模塊中。 – GrampaJohn

+0

解決的辦法是將通用依賴分解爲另一個pom模塊,然後(1)將.dir目錄留在.war中,並且(2)依賴於兩個地方的公共依賴關係。它正在工作。 – GrampaJohn