故事是关于maven项目的依赖关系。我有:
我应该在我的项目中使用哪种依赖项?如果我在最终构建中留下两个依赖项,那么我将得到类冲突。 应用程序可以部署到任何JavaEE容器,如Glassfish,Wildfly,JBOSS等。
请注意, hibernate-jpa-2.1-api 不是任何JavaEE服务器的特定API,也不是实现。它只是 hibernate-core 工件的API编译范围依赖项。并且我不会手动包含此依赖项,如果我选择Hibernate作为JPA实现,那么 hibernate-jpa-2.1-api 将默认包含在构建中。 / p>
答案 0 :(得分:0)
似乎我想通了。
我学到了大多数来源(例如http://www.adam-bien.com/roller/abien/entry/the_only_one_dependency_you),说明javaee-api依赖项只能在提供的范围内使用。这是因为服务器实现了这些API,并且实现可能会有所不同。你永远不应该把 javaee-api.jar 置于战争或耳中。
此外,wildfly服务器包含标准模块集: hibernate-jpa-2.1-api-1.0.0.Final.jar 。这意味着在这个部分javaee容器中 javax.persistence。* 类由此库提供而不是 javaee-api.jar 。