Hibernate发布包和pom.xml:设置开发环境

时间:2010-12-06 21:48:49

标签: java hibernate maven-2

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

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

据我所知,没有用于Hibernate 3的setup.exe。我假设没有安装setup.exe,我需要设置类路径来安装我的Hibernate 3。 我已经从* 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以这种方式使用本教程将使用两个存储库,如
1)* http://repo1.maven.org/maven2/

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

然后我键入mvn编译并构建成功!

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

在我看来,在我看来,没有必要下载Hibernate 3(140 MB),并且成功构建这个hibernate应用程序(教程文件)所需的所有文件都是从存储库下载的。

我有什么误解?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

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

Maven是一个构建系统

因此它管理如何构建您的项目。这来自您放在pom.xml中的配置详细信息。您定义了依赖关系,Maven知道如何在配置这些位置时找到它们,或者Maven依赖于它自己的默认位置。 (这是http://repo1.maven.org/maven2/来自的地方)。

Maven以定义的阶段构建,每个阶段都依赖于之前的阶段。为了这些(简化以便于演示):

  1. 清除 - 清除以前的任何编译工作(通常在“目标”中)并重新开始
  2. 复制资源 - 将src / main / resources下的所有内容复制到target / classes
  3. 编译 - 将src / main / java下的所有内容编译为target / classes
  4. 测试 - 在src / test / java下运行测试(如果需要,使用src / test / resources)
  5. 包 - 构建目标工件(JAR,WAR,EAR等)
  6. 安装 - 将工件放入本地存储库(与其他本地项目共享)
  7. 部署 - 将工件放入团队存储库(与其他人共享)
  8. 从上面可以清楚地看出,在Maven pom.xml中将Hibernate3指定为依赖项将指示Maven关闭并在本地存储库中查找构成Hibernate的必要JAR文件。如果它在那里找不到它,它将查看团队存储库(如果在.m2 / settings.xml文件中提到)。如果没有,那么它将从Maven central(http://repo1.maven.org/maven2/)下载。

    Maven使用传递依赖的概念意味着你的项目依赖于Hibernate,但Hibernate依赖于CGLIB,而CGLIB又依赖于ANTLR等。您不必考虑这一点,Maven负责引入您使项目工作所需的所有相关JAR。