如果您在pom.xml
中指定<dependency>
,那么不仅其jar包会下载到本地存储库,而且还会下载POM文件。然后,Maven将查找此类POM文件中的信息以找出需要检索的其他库。这就是Maven的想法transitive dependencies feature
因此,它依赖于存储在公共存储库中的这些POM文件的准确性和完整性。如果这样的POM文件中的依赖关系未更新或为空,则必须提供如有必要,您可以在自己的pom.xml
明确依赖项。
对Hibernate,hibernate-core
已经取决于hibernate-jpa-2.0-api
这意味着hibernate-jpa-2.0-api
会下载,如果你包括在pom.xml
hibernate-core
。所以,hibernate-jpa-2.0-api
是冗余,可以删除。
如果你想使用JPA接口与休眠,你可以只包括在<dependency>
hibernate-entitymanager
因为它依赖于hibernate-core
,因此将下载它。
最后,我建议你干脆包括hibernate-entitymanager
在<dependency>
:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.6.7.Final</version>
</dependency>