Maven 依赖范围与传递依赖关系



我正在学习maven范围,我遇到了一个疑问。

如果一个项目中所有依赖项的作用域,比如A,都是编译的,那么它们也会出现在它的jar中。所以,据说,对于任何其他项目,比如B,依赖于这个项目A,也会得到A的传递依赖关系。但它们已经存在于项目 A 的罐子中?为什么要再次下载它们?

它们不是"存在于罐子里"。jar 的传递依赖项不会捆绑到 jar 中,除非您显式构建一个胖 jar,例如使用程序集插件或阴影插件。

但是,胖罐并不意味着是其他工件的依赖项,它们只是为了独立运行。

对于耳朵和战争

,情况是不同的(标准是捆绑所有内容(,但战争和耳朵不能作为你依赖的库。

最新更新