如何通过 Maven2 pom.xml 获取 Hibernate + javax.persistence
Posted
技术标签:
【中文标题】如何通过 Maven2 pom.xml 获取 Hibernate + javax.persistence【英文标题】:How to get Hibernate + javax.persistence via Maven2 pom.xml 【发布时间】:2011-04-23 18:34:32 【问题描述】:我是 Maven2 的新手,我写了一个 pom.xml。 现在我想让 Hibernate 和 javax.persistence 解决这个问题:
import javax.persistence.Entity;
...
import org.hibernate.annotations.Fetch;
...
需要做什么?我在我的 pom.xml 中写道:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.5.6-Final</version>
</dependency>
但是我得到一个错误(我已经得到了一些其他的依赖,但是 Hibernate 不起作用):
11.10.10 13:19:53 MESZ: Refreshing [/testProject/pom.xml]
11.10.10 13:19:54 MESZ: Missing artifact org.hibernate:hibernate:jar:3.5.6-Final:compile
11.10.10 13:19:54 MESZ: Maven Builder: AUTO_BUILD
11.10.10 13:19:55 MESZ: Maven Builder: AUTO_BUILD
那么,这里有什么问题?为什么它不知道神器?
在此先感谢您并致以最诚挚的问候。
【问题讨论】:
【参考方案1】:声明 JBoss 存储库:
<project>
...
<repositories>
<repository>
<id>repository.jboss.org-public</id>
<name>JBoss repository</name>
<url>https://repository.jboss.org/nexus/content/groups/public</url>
</repository>
...
</repositories>
...
</project>
然后是下面的依赖:
<project>
...
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.5.6-Final</version>
</dependency>
...
</dependencies>
...
</project>
这就是你所需要的,其他依赖项将被传递。
【讨论】:
感谢您的回答,但我得到:11.10.10 13:27:50 MESZ: [WARN] Missing POM for org.hibernate:hibernate-entitymanager:jar:3.5.6-Final 11.10 .10 13:27:51 MESZ:缺少工件 org.hibernate:hibernate-entitymanager:jar:3.5.6-Final:compile @Tim 哦,我假设您已经声明了 JBoss 存储库。我已经更新了我的答案。 好的,现在可以了,javax.persistence.* 可以解决,但不能解决例如“import org.hibernate.annotations.Fetch;”抱歉,重启我的工作台后,解决了! @Tim 无论如何,您都不应该将休眠注释与 JPA 注释混合使用。如果您要添加专有代码,那么使用像 JPA 这样的开放标准是没有意义的。如果您想要 JPA 没有的休眠功能,请使用普通休眠。但是,如果您使用 JPA,请学会接受它的限制。 显然现在不需要指定 JBoss 存储库,因为软件包已添加到 Maven Central以上是关于如何通过 Maven2 pom.xml 获取 Hibernate + javax.persistence的主要内容,如果未能解决你的问题,请参考以下文章
maven2中settings.xml的本地配置访问优先级大于其全局性配置吗?
在myeclipse中maven项目关于ssh整合时通过pom.xml导入依赖是pom.xml头部会报错