我是否需要为hibernate.jar包含所有Maven依赖项?

时间:2012-05-03 07:44:43

标签: hibernate maven dependencies pom.xml

我有使用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自己这样做?

3 个答案:

答案 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将自动下载与您在那里添加的依赖项相对应的所有库,并且它们可以在您的应用程序中使用。

相关问题