【问题标题】:Where do I put META-INF in Eclipse?在 Eclipse 中我应该把 META-INF 放在哪里?
【发布时间】:2012-04-03 17:29:31
【问题描述】:

我正在使用https://github.com/impetus-opensource/Kundera/wiki/Getting-Started-in-5-minutes 上的昆德拉教程。当我在项目根目录创建文件夹 META-INF 并将 persistence.xml 放入其中时,Eclipse 没有找到它。

我进行了快速搜索,但没有发布真正的解决方案。

简单的文件路径难以配置是没有正当理由的。我正在寻找一个简单问题的简单答案。

【问题讨论】:

    标签: eclipse kundera


    【解决方案1】:

    它不应位于项目根目录,而应直接位于源文件夹下。

    在运行时,persistence.xml 文件在类路径中的 META-INF 下进行搜索。所以如果你想让META-INF文件夹放在编译包树的顶部,你需要把它放在源代码树的顶部。 Eclipse 将每个非 Java 文件复制到其输出目录(默认为 bin),尊重包/文件夹层次结构。

    【讨论】:

    • 也适用于 NetBeans (7.1):/<project>/src/META-INF
    • @craig 同样适用于 Eclipse:/<project>/src/META-INF
    • 我把它放在src,src/main,src/main/resources下但是什么都没有,我在bin目录下调试应用程序时没有复制该文件夹。
    • 好吧,我不得不把它放在src/main/java 下。丑陋但有效。
    【解决方案2】:

    基本上它必须在您的类路径中(在/META-INF/ 下)。您可以通过配置属性在 eclipse 中手动启用它。如果您的项目是基于 maven 的,那么它应该会自动从 /src/main/resources/META-INF/ 文件夹中挑选出来(提供的实体在同一引擎下)。

    【讨论】:

    • 在基于 Gradle 的项目中使用相同的默认路径 (/src/main/resources/META-INF/)。
    • 将 MANIFEST.MF 文件放在 /src/main/resources/META-INF/ 中对我不起作用,在我的 Gradle 项目中。(Gradle 版本 6.8.3)。
    【解决方案3】:

    应该在src/main/resources目录下,

    完整路径为/src/main/resources/META-INF/persistence.xml

    在 resources 目录下创建 META-INF 文件夹并有一个 persistence.xml 文件正确加载 entityMangerFactory bean 后,

    <property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" />
    

    以上行正确读取路径。

    【讨论】:

      【解决方案4】:

      如果您使用的是 Eclipse,请右键单击“src”文件夹,选择“构建路径”,然后选择“用作源文件夹”

      【讨论】:

      • 哇,耶!谢谢你,在我取消烧烤 2 天后它对我有用
      猜你喜欢
      • 2015-06-08
      • 2020-09-30
      • 2016-08-25
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-24
      • 2017-11-30
      相关资源
      最近更新 更多