缺少工件:org.hibernate:hibernate-entitymanager:jar:3.3.2.ga

时间:2013-11-18 21:32:55

标签: java spring hibernate maven

我对Spring和maven相对较新,我只是在几个月内第一次重新审视它们。当我尝试从 this tutorial运行代码时,我在pom.xml中遇到以下错误:

Missing artifact: org.hibernate:hibernate-entitymanager:jar:3.3.2.ga  

这是否意味着我必须下载并安装额外的jar?我很确定我用spring下载了hibernate,这得到了以下事实的支持:当从tomcat服务器上的eclipse启动时,spring pet clinic示例应用程序在我的系统上正常运行。

我已经完成了谷歌搜索此错误消息,并尝试了许多建议,但他们没有解决我的机器上的问题。如何通过此错误消息?


EDIT / ANSWER?

我挖掘了项目的目录结构,找到了另一个没有抛出错误的pom.xml副本。它实际上使用了语法3.3.2.ga,所以我认为不是这个问题。新的pom.xml文件位于目标/ m2e-wtp / web-resources / META-INF / Maven / MavenWeb / MavenWeb /子目录的深处。当我将这个新的pom.xml移动到根目录时,错误消息就消失了,即使该节点的语法仍然是:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>3.3.2.ga</version>
</dependency>  

目前,这个问题已得到解答,至少在我稍后尝试运行之前。让我考虑一下如何为人们在这方面所做的工作给予赞扬,同时仍然让那些在搜索引擎上找到这个问题的人明白答案。

3 个答案:

答案 0 :(得分:5)

Maven将自动从maven中央存储库下载所需的jar。

但是我没有在maven central找到org.hibernate:hibernate-entitymanager:jar:3.3.2.ga,而是使用带有大写GA的版本3.3.2.GA找到<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>3.3.2.GA</version> </dependency> ! :

c:\documents\<yourName>\.m2\repository\org\hibernate\hibernate-entitymanager\3.3.2.ga\

在Windows上你有其他问题(因为windows文件系统不区分大写和小写文件名):你需要删除一个目录:

{{1}}

删除此目录并再次尝试eclipse update maven dependencies。

答案 1 :(得分:1)

您可能已经按照描述下载了hibernate,但它可能是不正确的版本。无论如何,请确保更改pom.xml文件,您将hibernate-entitymanager定义为下面的行。 (因为这是它将寻找的确切版本)

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>3.3.2.GA</version>
</dependency>

答案 2 :(得分:1)

您需要将项目中的默认构建器设置为maven。

要执行此操作,请右键单击您的项目并选择Properties(或选择项目并按键盘上的alt + Enter键)

在对话框的左侧,选择Builders

在右侧,选择Maven Project Builder,然后使用右侧的Up按钮将其前移到列表顶部。

点击Ok即可完成。

修改

要解决您所描述的问题,您需要转到应用程序的根文件夹。找到以下两个文件:.project.classpath

你需要编辑它们,所以退出eclipse并备份这些文件。

.project中,更改以下行:

  1. 在与maven相关的构建命令中,将name标记的值更改为:org.eclipse.m2e.core.maven2Builder
  2. nature中,将其更改为:org.eclipse.m2e.core.maven2Nature
  3. .classpath中,更改以下行:

    1. <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/><classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
    2. 希望它有所帮助。