问题 如何通过Maven2 pom.xml获取Hibernate + javax.persistence


我是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

那么,这里有什么不对?为什么它不知道神器?

提前谢谢你和最诚挚的问候。


4241
2017-10-11 11:25


起源



答案:


声明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>

这就是您的全部需求,其他依赖项将被传递。


16
2017-10-11 11:26



感谢您的回答,但我明白了:11.10.10 13:27:50 MESZ:[WARN] org.hibernate缺少POM: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
@Tim哦,我假设您已经声明了JBoss存储库。我已经更新了我的答案。 - Pascal Thivent
好的,现在它可以工作了,javax.persistence。*可以解决,但不是例如“import org.hibernate.annotations.Fetch;”抱歉,重新启动我的工作台后,它已解决! - Tim
@Tim你不应该将hibernate注释与JPA注释混合在一起。如果要添加专有代码,使用像JPA这样的开放标准是没有意义的。如果你想要JPA没有的hibernate功能,请使用普通的hibernate。但是如果你使用JPA,就要学会忍受它的极限。 - Sean Patrick Floyd
显然现在没有必要指定JBoss存储库,因为已经添加了包 Maven Central - stivlo


答案:


声明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>

这就是您的全部需求,其他依赖项将被传递。


16
2017-10-11 11:26



感谢您的回答,但我明白了:11.10.10 13:27:50 MESZ:[WARN] org.hibernate缺少POM: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
@Tim哦,我假设您已经声明了JBoss存储库。我已经更新了我的答案。 - Pascal Thivent
好的,现在它可以工作了,javax.persistence。*可以解决,但不是例如“import org.hibernate.annotations.Fetch;”抱歉,重新启动我的工作台后,它已解决! - Tim
@Tim你不应该将hibernate注释与JPA注释混合在一起。如果要添加专有代码,使用像JPA这样的开放标准是没有意义的。如果你想要JPA没有的hibernate功能,请使用普通的hibernate。但是如果你使用JPA,就要学会忍受它的极限。 - Sean Patrick Floyd
显然现在没有必要指定JBoss存储库,因为已经添加了包 Maven Central - stivlo