美芬: “运行时”作用域的目的是什么?

可能的复制品:
理解编译-vs 运行时依赖项

据我所知,具有“运行时”作用域的依赖项将在运行时可用,而不是在编译时可用。但我不明白你为什么想要那样!为什么不直接使用“编译”作用域呢?

医生没什么用,知道吗?

96445 次浏览

对于单元测试和运行时所需的依赖关系,运行时是有用的,但是在编译时不是。这通常是动态加载的代码,比如 JDBC 驱动程序,它们不会在程序代码中直接引用。

将依赖项设置为运行时可以确保代码上不存在偶然的依赖项,并且还可以防止依赖项具有传递性。例如,如果模块 A 在运行时依赖于库 X,而模块 B 依赖于模块 A,那么 没有确实继承了对库 X 的依赖。使用“提供”或“编译”会导致 B 依赖于 X。