我有使用Hibernate的项目:hibernate-core-3.6.7.Final.jar
在POM中我找到了:
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
</dependency>
我应该在我的应用程序中包含所有依赖项,还是Maven自己这样做?
答案 0 :(得分:3)
如果在<dependency>
中指定pom.xml
,则不仅会将其jar文件下载到本地存储库,还会下载POM文件。然后,Maven将在此类POM文件中查找信息,以找出需要检索的其他库。这就是Maven的transitive dependencies feature
因此,它依赖于存储在公共存储库中的此类POM文件的准确性和完整性。如果此类POM文件中的依赖项未更新或为空,则必须在您自己的pom.xml
中明确提供依赖项如果有必要的话。
对于休眠,hibernate-core
已取决于hibernate-jpa-2.0-api
,这意味着如果您在hibernate-jpa-2.0-api
中加入hibernate-core
,则会下载pom.xml
。因此,hibernate-jpa-2.0-api
是冗余的,可以删除。
如果你想在休眠时使用JPA接口,你可以在hibernate-entitymanager
中包含<dependency>
,因为它取决于hibernate-core
,因此也会下载它。
总而言之,我建议您只在hibernate-entitymanager
中添加<dependency>
:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.6.7.Final</version>
</dependency>
答案 1 :(得分:2)
Maven就是用来做的。您应该为Eclipse安装m2插件(如果您在eclipse上编码),然后右键单击您的项目 - &gt;更新项目依赖关系 但Maven用于此,这意味着当您在项目中添加依赖项时,Maven将下载libs,并将它们添加到项目中的正确位置。
答案 2 :(得分:1)
您需要的所有依赖项,您必须在pom.xml文件中手动添加。如果配置正确,maven将自动下载与您在那里添加的依赖项相对应的所有库,并且它们可以在您的应用程序中使用。