Maven依赖范围与传递依赖

时间:2019-04-02 12:06:51

标签: maven maven-3

我正在学习Maven范围,但遇到了疑问。

如果项目中所有依赖项(例如A)的范围是compile,那么它们也将出现在其jar中。因此,对于其他依赖于项目A的项目(例如B),也将获得A的传递依赖。但是它们已经存在于项目A的jar中了吗?为什么还要再次下载它们?

1 个答案:

答案 0 :(得分:1)

它们不是“存在于罐中”。除非您显式构建一个胖jar,例如jar,否则jar的传递依赖项不会捆绑到jar中。与Assembly插件或shade插件一起使用。

但是,胖罐子并不意味着要与其他工件相关,而只能是独立运行。

对于耳朵和战争而言,情况有所不同(标准是捆绑所有内容),但是战争和耳朵并不能充当您依赖的库。