1

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

4

3 回答 3

3

如果你<dependency>在你的 . 中指定 a pom.xml,不仅它的 jars 会被下载到你的本地存储库,而且还会下载一个 POM 文件。然后,Maven 将在此类 POM 文件中查找信息以找出它需要检索的其他库。这就是 Maven 的传递依赖特性的想法

因此,它依赖于存储在公共存储库中的此类 POM 文件的准确性和完整性。如果此类 POM 文件中的依赖项未更新或为空,则必须在pom.xml必要时在自己的文件中明确提供依赖项。

对于休眠, hibernate-core已经取决于hibernate-jpa-2.0-api如果hibernate-jpa-2.0-api您包含hibernate-corepom.xml. 所以 ,hibernate-jpa-2.0-api 是冗余并且可以被移除。

如果您想将 JPA 接口与 hibernate 一起使用,您可以将其包含hibernate-entitymanager在其中,<dependency>因为它依赖于它hibernate-core,因此也会下载它。

最后,我建议您简单地包括hibernate-entitymanager<dependency>

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>3.6.7.Final</version>
</dependency>
于 2012-05-03T08:30:41.510 回答
2

Maven 用于此。您应该为 Eclipse 安装 m2 插件(如果您在 Eclipse 上编码),然后右键单击您的项目 -> 更新项目依赖项。
但是 Maven 是用来做这个的,这意味着当你在项目中添加依赖项时,Maven 会下载这些库,并将它们添加到项目中的正确位置。

于 2012-05-03T07:56:16.410 回答
1

您需要的所有依赖项都必须手动添加到您的 pom.xml 文件中。如果配置正确,maven 将自动下载与您添加的依赖项相对应的所有库,并且它们将准备好在您的应用程序中使用。

于 2012-05-03T08:23:35.283 回答