我继承了一个具有数十个“提供”范围依赖项的 Maven 项目。我正在插入一个新的依赖项,该依赖项本身依赖于前面提到的“提供”依赖项之一。这个新依赖的范围是“compile”/default 标签。
该应用程序在没有添加新依赖项的情况下工作。使用新依赖项成功编译应用程序后,应用程序在运行时失败,因为新依赖项找不到“提供的”依赖项。
是否有必要让所有“提供的”依赖项与“提供的”依赖项一起工作(并且与任何其他范围相同——它们只与他们的类型一起工作)?我想不出任何其他解释为什么新的默认/“编译”依赖项不能与现有的“提供”依赖项一起使用。正如我所提到的,在引入任何新的依赖项之前,它们已经被明确地提供和工作了。任何帮助表示赞赏!我一直在使用有关范围的 Maven 文档和这篇SO 帖子。