Java中的编译时间和运行时依赖性有什么区别?它与类路径有关,但它们有何不同?
我试图了解runtimemaven中作用域依赖的特定需求.在哪种情况下我需要这个,哪个都没有compile,provided范围不会?
例如,compile当我必须直接在代码中调用库API(针对它进行编译)并将依赖项打包到工件或依赖项目工件中时,我会使用scope作为依赖项.
provided当我必须针对API进行编译时,我会使用范围,但不要打包它(除了它在运行时可用).
但我runtime什么时候需要范围?这是针对什么情况,当我不直接调用库API(而是使用反射),但是想要将它打包在工件中?为什么不只是使用compile范围?唯一的好处是编译时间更快,或者是否有其他特殊的runtime范围无法通过compile范围实现或避免?