如何處理傳遞依賴?
Spring Cloud Contract 外掛增加了為你建立 stub jar 的任務。一個出現的問題是,當重用 stub 時,你可能會錯誤地匯入該 stub 的所有依賴項。構建 Maven artifact 時,即使你有幾個不同的 jar,它們都共享一個 pom.xml
檔案,如下所示:
├── producer-0.0.1.BUILD-20160903.075506-1-stubs.jar
├── producer-0.0.1.BUILD-20160903.075506-1-stubs.jar.sha1
├── producer-0.0.1.BUILD-20160903.075655-2-stubs.jar
├── producer-0.0.1.BUILD-20160903.075655-2-stubs.jar.sha1
├── producer-0.0.1.BUILD-SNAPSHOT.jar
├── producer-0.0.1.BUILD-SNAPSHOT.pom
├── producer-0.0.1.BUILD-SNAPSHOT-stubs.jar
├── ...
└── ...
有三種處理這些依賴項的可能性,以避免傳遞依賴問題
-
將所有應用依賴標記為可選
-
為 stub 建立單獨的
artifactid
-
在消費方排除依賴項