在我的Java EE 7 OpenShift项目中,我使用的是javaee-api 7.0版。对于我的模型,我添加了depency validation-api版本1.1.0,但这还不够。然后我尝试了
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.4.Final</version>
<scope>provided</scope>
</dependency>
这是有效的。 这个依赖中是否隐含了validation-api?
答案 0 :(得分:2)
Hibernate Validator是Bean Validation 1.1规范的参考实现。
例如,检查Maven Repository,您会发现hibernate-validator
工件确实包含 validation-api
工件作为依赖项。
Bean验证在javax.validation
包和子包中定义。
Java EE 7是umbrella specification,除其他规范外,还包括Bean Validation 1.1规范。
这意味着javaee-api
工件包含javax.validation
包和子包。但是,没有提供Bean Validation的实现作为该工件的依赖项。
另一方面,一些容器(如WildFly和GlassFish)提供Hibernate Validator依赖项(或任何其他Bean Validation实现)以符合Java EE 7规范。在这种情况下,如果要使用Hibernate Validator中的特定(即org.hibernate.validator
包或子包中的某些内容),则需要添加{{3}与provided
范围的依赖关系。
否则,如果您不使用Hibernate Validator中的任何特定内容,hibernate-validator
依赖项应该没问题。