Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate发布包和pom.xml:设置开发环境_Java_Hibernate_Maven 2 - Fatal编程技术网

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

Java Hibernate发布包和pom.xml:设置开发环境,java,hibernate,maven-2,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/e

我对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。 我已经从列表中下载了Hibernate的发行版*http://sourceforge.net/projects/hibernate/files/hibernate3/. 超过140MB。解压这个140MB的文件后,我没有设置任何类路径

我从*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编译,构建成功了

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

在我看来,根本不需要下载Hibernate 3(140 MB),成功构建此Hibernate应用程序所需的所有文件(教程文件)都是从存储库下载的。

我误解了什么?


提前谢谢

你需要仔细阅读Maven的工作原理。有一个很好的免费PDF,名为,将解释它的一些细节,但这里是一个快速的概述,以帮助您沿着

Maven是一个构建系统

因此,它管理如何构建您的项目。这来自您在pom.xml中输入的配置详细信息。您定义了依赖项,Maven知道如何找到它们,因此您可以配置这些位置,或者Maven依赖自己的默认位置。(这就是问题的根源)

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

  • 清理-删除以前的编译工作(通常在“target”中),然后重新开始
  • 复制资源-将src/main/resources下的所有内容复制到target/classes
  • 编译-将src/main/java下的所有内容编译为target/classes
  • 测试-在src/Test/java下运行测试(如果需要,使用src/Test/resources)
  • 包-构建目标工件(JAR、WAR、EAR等)
  • 安装-将工件放入本地存储库(与其他本地项目共享)
  • 部署-将工件放入团队存储库(与其他人共享)
  • 从上面可以看出,在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