在Maven中编译时间依赖性和运行时依赖性

时间:2017-03-20 07:01:11

标签: maven dependencies dependency-management

我是Maven的新手,目前正在尝试了解依赖关系管理机制。有人可以告诉我一个只在运行时而不是在编译期间需要项目依赖的实例吗?

我很困惑,因为如果在编译时不需要某些东西,那么如何需要运行时依赖?

2 个答案:

答案 0 :(得分:1)

理解编译时和运行时依赖性之间差异的用例之一是JDBC连接。 在JDBC连接中,我们通常使用

class.forname( "com.mysql.jdbc.driver")

因此在运行时需要MySQL jar,而不是在编译期间,因此它是运行时依赖性而不是编译时依赖性

答案 1 :(得分:0)

除了Jason1的回答:

  • 如果您有一个注入对象的容器(例如,使用EJB),那么在编译时只需要接口,但在运行时,必须有实现。
  • 有一些构造用于编译"空方法定义",但使用完整方法作为运行时环境的一部分。