【问题标题】:Where do I put META-INF in Gradle?在 Gradle 中我应该把 META-INF 放在哪里?
【发布时间】:2015-06-08 12:46:33
【问题描述】:

我正在关注有关如何Create an Instant Messaging app using Google Cloud Messaging (GCM) 的 Appsrox 教程。不同之处在于我使用 Android Studio 而不是 Eclipse,而 Gradle 用于构建自动化。我试图将 META-INF 放在“src/main”文件夹中,但我收到了来自 Google App Engine 的警告:

警告:在当前线程的 CLASSPATH 中找不到 META-INF/persistence.xml 文件!

EntityManager在初始化过程中崩溃,导致找不到'persistence.xml'。

我正在寻找一个简单的答案来解决应该是一个简单的问题:我应该将 META-INF 文件夹放在哪里?

【问题讨论】:

标签: java gradle project-structure meta-inf


【解决方案1】:

在基于 Gradle 的项目中,将包含“persistence.xml”的 META-INF 文件夹放在“/src/main/resources”中。 (基于 Maven 的项目也是如此)

了解更多关于标准目录布局here

【讨论】:

    【解决方案2】:

    正如@naXa 建议的那样,'/src/main/resources' 是默认位置,您通常应该将它放在那里。但是如果由于某种原因这不切实际,你可以将它放在任何你想要的地方,只要你告诉 Gradle 就行了。例如,如果你想将 META-INF 目录放在 'src/main/java' 中,你可以这样写:

    // Allow resources to live in same directory as source code
    sourceSets.main.resources.srcDirs += ["src/main/java"]
    sourceSets.test.resources.srcDirs += ["src/test/java"]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-30
      • 2016-08-25
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-24
      • 2017-11-30
      相关资源
      最近更新 更多