1. 程式人生 > >整合boot和cloud時候針對<parentId>和<dependencyManagement>區別的疑惑

整合boot和cloud時候針對<parentId>和<dependencyManagement>區別的疑惑

首先看,在maven下,對微服務進行聚合時候,看到parentId和dependencyManagement。很相似。所以這裡,我想對這兩個標籤進行說明一下,把自己的經驗告訴大家。

如圖:
以下為parentId的方式:

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.2.RELEASE</version>
		<relativePath /> <!-- lookup parent from repository -->
  </parent>

以下為dependencyManagement的方式:

<dependencyManagement>
  <dependencies>


    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-dependencies</artifactId>
      <version>1.5.9.RELEASE</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
</dependencies>
</dependencyManagement>

以上兩種整合方式,針對不進行聚合依賴的情況下,而且只是單獨的ssm專案情況,沒有區別。
但是,一旦專案存在聚合,子類和父類不能都存在一樣的。這是因為springboot在建立單應用專案的時候,有預設的依賴;我們在自定義wyait-parent專案時,如果直接以springboot的parent作為wyait-parent專案的父依賴管理的話,子專案會由於存在兩個parent而報錯,無法匯入依賴。

所以,存在的標籤,它是所有dependency的頂級父類,類似parenid的效果,但是,他可以存在多個。而且,更好的管理對應的jar,可以把jar單獨在對應的頂級依賴父類裡面統一管理

針對cloud和boot的聚合依賴下,我專案就採用了方案去解決依賴衝突問題。

http://blog.51cto.com/wyait/2137112