dependencyManagement與dependencies區別 dependencyManagement里只是聲明依賴,並不實現引入,因此子項目需要顯式的聲明需要用的依賴。如果不在子項目中聲明依賴,是不會從父項目中繼承下來的; 生效方式: 只有在子項目中寫了該依賴項,並且沒有指定具體版本,才 ...
dependencyManagement與dependencies區別
dependencyManagement里只是聲明依賴,並不實現引入,因此子項目需要顯式的聲明需要用的依賴。如果不在子項目中聲明依賴,是不會從父項目中繼承下來的;
生效方式: 只有在子項目中寫了該依賴項,並且沒有指定具體版本,才會從父項目中繼承該項 ,並且version和scope都讀取自父pom;另外如果子項目中指定了版本號,那麼會使用子項目中指定的jar版本。
dependencies即使在子模塊中不寫該依賴項,那麼子模塊仍然會從父項目中繼承該依賴項(全部繼承)。
總結:
pom引入包進行良好的代碼規劃 會使得項目更容易維護,舉例說明
在cloud項目中,子項目都會用到spring-cloud-starter-bootstrap啟動器。這就可以寫到dependencies里,父層有,子一定會有。
還有些不一定所有項目都用,但是需要統一版本的com.github.pagehelper插件,就可以在父級dependencyManagement聲明,如果子有引用該插件,則可以不填寫版本號,統一會用父級的。
一、劃定版本 配置
<properties> <spring-cloud.version>2020.0.4</spring-cloud.version> </properties>
二、聲明依賴 此標簽內的只是聲明,子並不會有引用
<dependencyManagement> <dependencies> <!-- SpringCloud 微服務 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
三、引用依賴 此標簽引用 子項目也一定會有
<dependencies> <!-- bootstrap 啟動器 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency> </dependencies>