我是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应用程序(教程文件)所需的所有文件都是从存储库下载的。
我有什么误解?
提前谢谢!
答案 0 :(得分:0)
您需要了解Maven的工作原理。有一个很好的免费PDF,名为Better Builds with Maven,它将详细解释所有内容,但是这里有一个快速概述可以帮助您。
Maven是一个构建系统
因此它管理如何构建您的项目。这来自您放在pom.xml中的配置详细信息。您定义了依赖关系,Maven知道如何在配置这些位置时找到它们,或者Maven依赖于它自己的默认位置。 (这是http://repo1.maven.org/maven2/来自的地方)。
Maven以定义的阶段构建,每个阶段都依赖于之前的阶段。为了这些(简化以便于演示):
从上面可以清楚地看出,在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。