Maven 依赖范围与传递依赖
Maven dependency scope vs Transitive dependency
我在学习maven scope,遇到了一个疑问
如果项目中所有依赖项的范围,比如 A,都是编译的,那么它们也会出现在它的 jar 中。所以,据说,对于任何其他项目,比如 B,它依赖于这个项目 A,也会获得 A 的传递依赖。但是它们已经存在于项目 A 的 jar 中?为什么要重新下载它们?
他们不是"present in the jar"。 jar 的传递依赖项不会捆绑到 jar 中,除非您显式构建一个 fat jar,例如使用 assembly 插件或 shade 插件。
不过,Fat jars 并不意味着是其他工件的依赖项,它们只是 运行 独立的。
耳朵和战争情况不同(标准是捆绑一切),但战争和耳朵不作为你依赖的库。
我在学习maven scope,遇到了一个疑问
如果项目中所有依赖项的范围,比如 A,都是编译的,那么它们也会出现在它的 jar 中。所以,据说,对于任何其他项目,比如 B,它依赖于这个项目 A,也会获得 A 的传递依赖。但是它们已经存在于项目 A 的 jar 中?为什么要重新下载它们?
他们不是"present in the jar"。 jar 的传递依赖项不会捆绑到 jar 中,除非您显式构建一个 fat jar,例如使用 assembly 插件或 shade 插件。
不过,Fat jars 并不意味着是其他工件的依赖项,它们只是 运行 独立的。
耳朵和战争情况不同(标准是捆绑一切),但战争和耳朵不作为你依赖的库。