爲了便於閱讀,您應該僅聲明模塊中依賴於的那些依賴關係,直接使用。您希望JUnit測試您的軟件,只聲明JUnit;你需要休眠來使用ORM,聲明休眠等等。剩下的給Maven。
大多數情況下,您應該說明您打算在要使用它的模塊中使用什麼。因此,如果您想在多個模塊中使用依賴關係,請考慮將其移入一個依賴關係管理塊中父POM,並從那裏引用它的模塊中,你想進去。
父pom.xml的
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
孩子的pom.xml
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
此區保證你的版本穩定性,並且仍然允許你通過查看它的pom(而不是遍佈整個地方)找出模塊的用途。
那麼這是否意味着如果我寫的代碼直接引用common-io,它們應該在POM.xml中明確定義,即使Spring也可能依賴於common-io? – pengpenglin
更進一步,如果我的代碼直接依賴的commons-io版本與使用的一個spring不同。 maven會做什麼?兩個版本都會被下載或選擇最新版本?謝謝 !! – pengpenglin
是的第一條評論。第二條評論 - 如果版本衝突,Maven會自動選擇最新版本。 –