为什么我可以在编译时引用运行时依赖项?

时间:2015-03-21 13:32:22

标签: maven

Eclipse让我导入一个在运行时作用域的类没有问题。这是为什么?

所述类是HibernateValidator,它是运行时范围。

<dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>5.1.3.Final</version>
        <scope>runtime</scope>
    </dependency>

@Bean
public LocalValidatorFactoryBean localValidatorFactoryBean() {
    LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean();
    localValidatorFactoryBean.setProviderClass(HibernateValidator.class);
    return new LocalValidatorFactoryBean();
}

我想我刚刚意识到这是因为maven会在你的类路径中添加依赖项,即使它们是运行时范围的?

1 个答案:

答案 0 :(得分:0)

最有可能的是,此工件位于POM中某些其他依赖项的编译时类路径中。

尝试执行mvn dependency:tree