如何处理传递依赖?
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
-
在消费方排除依赖项