如何處理傳遞依賴?

Spring Cloud Contract 外掛添加了為您建立樁 jar 的任務。一個問題是,當重用樁時,您可能會錯誤地匯入該樁的所有依賴項。當構建 Maven 工件時,儘管您有幾個不同的 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
├── ...
└── ...

有三種處理這些依賴項的可能性,以避免出現傳遞性依賴問題

  • 將所有應用程式依賴項標記為可選

  • 為樁建立一個單獨的 artifactid

  • 在消費者端排除依賴項

如何將所有應用程式依賴項標記為可選?

如果在 producer 應用程式中,您將所有依賴項標記為可選,當您在另一個應用程式中包含 producer 樁(或當 Stub Runner 下載該依賴項時),那麼,由於所有依賴項都是可選的,它們將不會被下載。

如何為樁建立一個單獨的 artifactid

如果您建立一個單獨的 artifactid,您可以按您希望的任何方式進行設定。例如,您可能決定完全不包含任何依賴項。

如何從消費者端排除依賴項?

作為消費者,如果將樁依賴項新增到類路徑中,您可以顯式排除不需要的依賴項。

© . This site is unofficial and not affiliated with VMware.