考虑
Project-B
Project-C
Project-D
Project-E
如果项目A取决于项目B
A IS:B,C,D&e。
现在,我想将Project-B的Project-D排除在Project-A
之外Project-A
Project-B
<exclusions> <exclusion> Project-D <exclusion/> <exclusions/>
A IS:B,C&amp;E
现在的问题是:如果Project-B决定它将从其依赖项中删除Project-D,例如以下
Project-B
Project-C
Project-E
是否会在我的Project-a POM中提及项目-D的Project-B(首先是Project-B不再具有project-d,因为依赖关系不再具有project-d(会给我的构建带来任何问题吗?
我可以通过上述结构创建一个虚拟项目并进行分析,但是我正在寻找的是,在发现解决这种情况的任何更好的选择方面的专业知识(如果所有存在(
我还阅读了此参考maven - 可选的依赖关系和依赖性apache maven(只是为了确保我不复制任何问题(,但在该引用中确实找不到任何此类用例。
<</p>在您的方案中,第一件事是您试图删除项目-A中的project-d的依赖性,而project-a的依赖性是无法使用的,因为您不能在这样,原因是项目-D是Project-C的依赖性。
因此,您需要做的第一件事是使Project-C成为您项目A的直接依赖性 - 如下:
Project-A
Project-C
<exclusions> <exclusion> Project-D <exclusion/> <exclusions/>
此外,您描述的是项目-B决定删除项目-D依赖性的情况可能会发生。这意味着,如果您依赖于传递依赖性(项目-D的内容(,就会收到构建错误。
这就是为什么您应该始终直接依赖您正在使用的东西的原因...换句话说,使用一类Project-D类,这意味着您的Project-A对Project-d具有直接的依赖性。/p>