【问题标题】:Hibernate release bundle and pom.xml: setting development environmentHibernate 发布包和 pom.xml:设置开发环境
【发布时间】:2011-05-21 06:05:36
【问题描述】:

我是 Hibernate 3 的新手,我不明白两者之间的区别
1) *http://sourceforge.net/projects/hibernate/files/hibernate3/

2) *https://repository.jboss.org/nexus/content/groups/public/
在编译 Hibernate 教程文件时。
我正在关注来自 *http://docs.jboss.org/hibernate/core/3.6/quickstart/en-US/html_single/ 的 Hibernate 教程

据我了解,Hibernate 3 没有 setup.exe。我假设我需要设置类路径来安装我的 Hibernate 3,而不是 setup.exe。 我已经从 *http://sourceforge.net/projects/hibernate/files/hibernate3/ 的列表中下载了 Hibernate 版本。它超过 140 MB。解压这个 140 MB 的文件后,我没有设置任何类路径。

我从 *http://docs.jboss.org/hibernate/core/3.6/quickstart/en-US/html_single/files/hibernate-tutorials.zip 下载了教程代码,解压缩并编辑了 pom.xml 文件。 xml 这样本教程将使用两个存储库,如
1) *http://repo1.maven.org/maven2/

2) *https://repository.jboss.org/nexus/content/groups/public/

然后我输入 mvn compile 并构建成功!

这个构建怎么可能成功?我没有设置任何类路径,这意味着 Hibernate 3(那个 140 MB 的文件)不包含在我的项目的类路径中。此外,我不明白在我的项目的类路径中包含什么意思?这是否意味着在 Windows XP 下我应该设置如下环境变量:
1) 路径/到/hibernate3.jar
2) 路径/到/lib/required/
3) 路径/到/lib/jpa/
当我将这三个路径添加到环境变量时,它并没有改变任何东西 - mvn compile 的工作方式与以前相同。我是否以错误的方式设置了这个类路径?

在我看来,似乎根本不需要下载 Hibernate 3 (140 MB),并且成功构建这个 hibernate 应用程序(教程文件)所需的所有文件都是从存储库下载的。
我有什么误解?

提前致谢!

【问题讨论】:

    标签: java hibernate maven-2


    【解决方案1】:

    您需要阅读 Maven 的工作原理。有一个出色的免费 PDF,名为 Better Builds with Maven,它将详细解释所有内容,但这里有一个快速概述,可以帮助您。

    Maven 是一个构建系统

    所以它管理如何构建您的项目。这来自您放在 pom.xml 中的配置详细信息。您定义了依赖项,Maven 知道如何通过配置这些位置或 Maven 依赖它自己的默认位置来找到它们。 (这就是http://repo1.maven.org/maven2/ 的来源)。

    Maven 在定义的阶段构建,每个阶段都依赖于它之前的阶段。按顺序排列(为便于演示而简化):

    1. 清理 - 清除所有以前的编译工作(通常在“目标”中)并重新开始
    2. 复制资源 - 将 src/main/resources 下的所有内容复制到目标/类
    3. 编译 - 将 src/main/java 下的所有内容编译到目标/类
    4. 测试 - 在 src/test/java 下运行测试(如果需要,使用 src/test/resources)
    5. 包 - 构建目标工件(JAR、WAR、EAR 等)
    6. 安装 - 将工件放入本地存储库(与其他本地项目共享)
    7. 部署 - 将工件放入团队存储库(与其他人共享)

    从上面可以清楚地看出,在 Maven pom.xml 中将 Hibernate3 指定为依赖项将指示 Maven 开始并在本地存储库中查找构成 Hibernate 的必要 JAR 文件。如果在那里找不到它们,它将在团队存储库中查找(如果在您的 .m2/settings.xml 文件中提及)。如果不在那里,它将从 Maven 中心 (http://repo1.maven.org/maven2/) 下载它们。

    Maven 使用传递依赖的概念,这意味着您的项目依赖于 Hibernate,但 Hibernate 依赖于 CGLIB,而 CGLIB 又依赖于 ANTLR 或其他东西。您不必考虑这一点,Maven 会负责引入使您的项目正常运行所需的所有相关 JAR。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多