如何告诉eclipse忽略:“在项目中找不到persistence.xml文件”

时间:2013-11-29 13:33:59

标签: java eclipse java-ee jpa

对于我的项目必要性我将一个核心项目中的所有persistence.xml条目重新组合,我将其绑定为maven依赖项。

问题是eclipse IDE总是抱怨

No persistence.xml  file found in project

有没有让日食保持沉默?感谢

8 个答案:

答案 0 :(得分:57)

感谢sionnach733让我走上正确的道路
enter image description here

答案 1 :(得分:14)

Window->Preferences->Java Persistence-> JPA-> Errors/warnings-> Project

然后将其从错误更改为您喜欢的任何内容(警告/信息/忽略)。如果您不希望它影响其他项目,您也可以选择配置项目特定设置

答案 2 :(得分:9)

如果在不需要JPA方面的Maven项目上发生此错误,您可以通过在pom中设置以下属性来告诉m2e不应用JPA激活(实质上,不是在项目配置期间添加JPA方面) .xml受影响的项目:

<properties>
    <m2e.jpa.activation>false</m2e.jpa.activation>
</properties>

如果您在现有CTRL-SPACE标记内按<properties>,则在pom.xml源代码中,content-assist将提供创建该属性的快捷方式,因此您不必非常记住语法,只是内容辅助就在那里......;)

应用该属性后,请确保在相关项目上运行Maven -> Update Project (Alt-F5)。您可能需要使用“项目属性”页面手动从受影响的项目中删除一次JPA方面。

对于那些想知道为什么m2e认为首先需要添加JPA方面的人:这是由m2e / WTP eclipse插件中的JpaProjectConfigurator类处理的,可以通过实现factet探测器来定制(所有人都必须扩展AbstractFacetDetector类并在org.eclipse.m2e.wtp.facetDetectors扩展点注册它们。因此,可能会通过您已安装的插件或Eclipse m2e / WTP功能中内置的默认检测来激活方面,该功能基本上会查找现有的persistence.xmlorm.xml文件或项目中的JPA提供者库&#39;类路径。当业务逻辑工件依赖于我的持久层工件(工作区分辨率已启用,这可能是问题的一部分)具有META-INF/persistence.xml,而业务逻辑工件没有依赖时,我就会发生这种情况。吨。

有关详细信息,请参阅M2E-WTP/New and Noteworthy/1.0.0The rg.eclipse.m2e.wtp.jpa.internal.configurators.JpaProjectConfigurator source code

恕我直言,接受的答案是没有好的建议,因为错误只是将错误严重性设置为&#34;忽略&#34;,因为Eclipse不会对项目发出警告 确实是JPA项目因此具有/需要JPA方面,因此应该在预期位置提供persistence.xml(命名和位置对于Java EE环境中部署的工件很重要)。

此外,通过实际正确配置非JPA项目(即没有多余的JPA方面),Eclipse不会浪费时间在项目上运行JPA验证和JPA变更监控。您可能已经在Progress视图中注意到了JPA Project Change Event Handler (waiting)(特别是在工作区中有多个JPA项目时)。当JPA方面被移除时,这些不再适用于不需要JPA的项目。

答案 3 :(得分:6)

这个问题的所有其他答案都是通过愚弄 Eclipse而不是抱怨错误来处理问题。

问题的正确解决方法是从项目中删除JPA Facet。您可以通过在Project Explorer中右键单击项目,从菜单中选择Properties来实现。从那里,转到“Project Facets”,并确保取消选中JPA条目。单击Apply,然后单击OK。转到“项目”菜单,然后选择“清理”。这将消除虚假错误。

Screen shot of Project Facets

答案 4 :(得分:5)

我通过禁用Java项目的JPA方面来解决这个问题。

答案 5 :(得分:0)

1. go to .setting directory of the project

2. modify org.eclipse.wst.common.project.facet.core.xml
        remove the following:
             <installed facet="jpt.jpa" version="2.0"/> 
3. Refresh the project

干杯!!!

答案 6 :(得分:0)

我有具有以下规格的 Eclipse 平台: 版本:光子 (4.8) 版本号:I20180611-0500

我首先检查方面:

  1. 右键单击项目
  2. 点击属性
  3. 点击项目方面
  4. 在方面的项目列表中搜索 JPA 并验证 id 未选中,
  5. 此后检查项目树中的错误是否仍然存在,如果是:右键单击项目并单击验证。

答案 7 :(得分:-1)

我认为你已经配置了JPA透视图。

我刚刚在src / main / java / META-INF中创建了一个“空”的persistence.xml。 它会被maven看到,所以永远不会进一步......这是一个黑客,我知道,但它的确有效......