标签: maven
可能重复: Understanding Compile- vs Run-time Dependencies
我理解在运行时而不是在编译时可以使用“运行时”作用域的依赖项。但我不明白为什么你会这么想!为什么不简单地使用“编译”范围?
docs并没有真正帮助。有什么想法吗?
答案 0 :(得分:103)
运行时对于单元测试和运行时所需的依赖性非常有用,但在编译时则不行。这通常可以是动态加载的代码,例如JDBC驱动程序,它们不会在程序代码中直接引用。
将依赖项设置为运行时可确保不会对代码产生意外依赖关系,并且还会使依赖项不会传递。因此,例如,如果模块A对库X具有运行时依赖性,而模块B依赖于模块A,则它不继承对库X的依赖性。使用“提供”或“编译” 会导致B依赖X.