2013-05-17 22 views
2

我敢肯定,這可能是一個重複的問題,但我想知道爲什麼...模塊的說明Java的依賴關係

  • A,B和C是普通的Java模塊 - A和B是庫,C是應用程序。

  • 如果B依賴於一個

  • 和C依賴於B

  • 爲什麼我必須包括A和B用C的依賴呢?

我不是真的在尋找建議 - 我只有5個模塊在項目中,所以沒什麼大不了的。我只是好奇爲什麼這是這種情況(或者我錯過了一些明顯的東西)。

回答

1

有兩種依賴性需要考慮 - 項目依賴性和運行時依賴性。

運行時依賴關係是最簡單的:爲了運行C,您需要A和B的JAR,因爲沒有A,B就無法運行。 Java模塊類似於其他編譯語言中的動態庫(與靜態庫相反)。在編譯B時,編譯器不會將A的類的副本包含在B中:它假定A,B的依賴項在運行時可用。

項目依賴關係是那麼簡單:嚴格來說,你不需要要包括在C.多數開發環境依賴性列表中會弄清楚傳遞依賴於你,所以當一個變化,B將重新編譯,然後C會重新編譯以響應B的重新編譯。