【问题标题】:How to fix "Missing Gradle project configuration file" issue in Buildship?如何修复 Buildship 中的“缺少 Gradle 项目配置文件”问题?
【发布时间】:2017-07-12 14:58:07
【问题描述】:

作为 Eclipse 用户,我一直很喜欢 Gradle IDE。但是,此插件现已弃用,取而代之的是新的 Buildship 插件。

在安装了 Buildship 的新 Eclipse IDE 设置后,我在所有 Gradle 项目中都遇到以下错误:

缺少 gradle 项目配置文件:.settings/org.eclipse.buildship.core.prefs

谷歌上有几个页面处理这个问题,但它们似乎都已经过时了。插件的 bugtracker 中还有一个条目设置为“CLOSED FIXED”。好吧,显然,它没有修复。

我做错了吗?任何想法如何解决这个问题?

【问题讨论】:

  • 我在从版本控制中签出项目时遇到此错误,其中缺少 org.eclipse.buildship.core.prefs,因为提交用户甚至不使用 Buildship。问题是:org.eclipse.buildship.core.prefs 可以安全地致力于版本控制吗?
  • 我不认为您可以将这些文件添加到版本控制中,因为 Eclipse 将它们放在工作区元数据文件夹中 - 它可以驻留在与您的实际目录完全不同的目录中项目。所以不行。目前,如果出现问题,您必须通过向导重新导入项目。
  • org.eclipse.buildship.core.prefs 位于项目的 .settings 文件夹中,不是吗?
  • 啊,是的,你是对的。我以为是.metadata。我总是将.settings 放在 gitignore 上。所以也许可以将org.eclipse.buildship.core.prefs 签入版本控制。我不知道如果您在另一台计算机上检查它是否有任何绝对路径或其他依赖项可能会中断。我个人建议不要这样做。
  • 删除项目的 Gradle 属性并再次添加 Gradle 属性,它开始为我工作。很棒的@Swiggels

标签: eclipse gradle configuration buildship


【解决方案1】:

第一步

在 IDE > Properties > Project Natures 中右键单击您的 项目名称 > 在右侧窗格中选择 Gradle Project Nature > Remove > Apply and Close

第 2 步

在 IDE 中右键单击您的 项目名称 > 配置 > 添加 Gradle Nature

结果

让 Gradle 与 IDE 同步几秒钟,然后 项目根目录下会自动生成.settings文件。

删除错误

删除Problems视图中的错误。

【讨论】:

    【解决方案2】:

    也许你可以使用这个方法。通过恢复文件

    我不小心删除或丢失了我的 Flutter 项目中的文件。

    然后我做一个新方法 在你的flutter项目中输入./android文件夹。 复制到你的 mac 终端:

    touch "org.eclipse.buildship.core.prefs"; echo "connection.project.dir=
    eclipse.preferences.version=1" >> org.eclipse.buildship.core.prefs
    

    然后到你的 Flutter 项目中的 ./android/app 文件夹。

    touch "org.eclipse.buildship.core.prefs"; echo "connection.project.dir=..
    eclipse.preferences.version=1" >> org.eclipse.buildship.core.prefs
    

    【讨论】:

      【解决方案3】:

      最简单的解决方案,只使用鼠标

      正如 oehme 所说的(Stefan Oehme - 核心开发人员):
      https://github.com/eclipse/buildship/issues/504

      “Buildship 无法重新创建该文件,因为它不知道您的根项目是什么(Gradle 支持任意项目布局)。您应该检查设置文件或根本不检查任何 Eclipse 文件。检查不支持在 .project 中省略 .settings。”

      或者在这里(Stefan Oehme - 核心开发人员):
      https://discuss.gradle.org/t/do-i-need-to-check-in-settings-org-eclipse-buildship-core-prefs-file/22457/2:

      “如果您已签入具有 buildship 特性的 .project 文件,但没有签入设置文件,则会发生这种情况。您可以选择同时签入或不签入以及使用 Gradle 导入向导。”


      最简单的解决方案,只使用鼠标如下:

      1. 右键单击项目,然后单击属性
      2. 在属性窗口中,转到Project Natures删除 Gradle Nature,然后点击Apply and Close按钮
      3. 再次打开同一窗口并将 Gradle Nature 添加回,然后点击应用并关闭按钮
      4. 项目右键> Gradle > 刷新Gradle项目

      每一步之后:1,2,3,4 让eclipse做自己的更新工作,不要快速推送。

      其他解决方案是将文件保存在某处并再次将其粘贴到项目中或手动从头开始创建,然后执行:右键单击项目 > Gradle > 刷新 Gradle 项目。

      有用的细节:

      文件名:org.eclipse.buildship.core.prefs
      文件常用编码:ISO_8859_1
      文件路径:./setting/org.eclipse.buildship.core.prefs
      文件内容,一行:connection.project.dir = eclipse.preferences.version=1

      【讨论】:

        【解决方案4】:

        我认真地寻找解决方案,但只找到了解决方法。 Alan47 的解决方案为我创建了文件,但在我的情况下无法正确创建项目。所以我只是复制了创建的文件并以默认方式再次导入了项目:

        File -> Import -> General -> Existing Project into Workspace
        

        并再次将文件粘贴到目录中

        ./.settings
        

        文件名:

        org.eclipse.buildship.core.prefs
        

        文件内容只有:

        connection.project.dir=
        eclipse.preferences.version=1
        

        【讨论】:

        • 拯救了我的一天。很遗憾,Buildship 无法自行恢复。
        • 这是唯一对我有用的建议。请注意,如果是子项目,connection.project.dir 设置可能会有所不同。
        【解决方案5】:

        另一种选择是:

        1. 移至您的项目路径(找到 gradle 或 gradlew)
        2. Unix:sh gradlew cleaneclipse 赢:gradlew cleaneclipse

        在您的build.gradle 中需要apply plugin: 'eclipse'

        1. 在 Eclipse 中刷新您的项目。
        2. 之后对于 Unix:sh gradlew eclipse Win:gradlew eclipse

        现在,您的 Eclipse 项目中将缺少 gradle 特性。打开project -> configure -> add gradle nature 的上下文菜单

        现在一切应该又好了。

        【讨论】:

        • 奇怪的是,/gradlew tasks 告诉我生成的任务被称为cleanEclipse。两个版本,有和没有大写 E,都运行没有错误。而且我很确定通常 gradle 任务名称是区分大小写的吗?不管怎样,它确实奏效了。
        • 在 gradles NamedDomainObjectCollection 他们写道 equals 用于名称匹配。所以也许 Buildship 覆盖了equals 为我们增加一些便利。 :-)
        【解决方案6】:

        我自己想通了。 “缺少 gradle 项目配置文件”的问题源于将 gradle 项目导入 Eclipse 的方式。

        当通过常规的File -> Import -> General -> Existing Project into Workspace 命令导入 gradle 项目时,它将工作并产生上述错误。

        但是,如果您通过 File -> Import -> Gradle -> Existing Gradle Project 导入相同的项目,那么您将获得一个不同的导入向导,并且使用此向导,它就像一个魅力。

        我仍然认为这是一个错误,因为导入向导的选择应该无关紧要。不过,选择合适的向导是一种可行的解决方法。

        【讨论】:

        • 请注意,这可能不明确,因为在迁移期间可能存在多个构建系统文件(Maven + Gradle 或 ant + Gradle)。此外,这些向导是由第 3 方作者创建的。那么核心框架应该做什么呢?也许它可以提供一个钩子,以便插件可以将逻辑注入“通用项目”向导,让他们从文件中检测他们的“导入程序”是否可能适用并(提供)将它们重定向到不同的向导步骤? (但是,如果多个插件接受这个钩子怎么办?)我认为这可能是在这样一个可扩展的平台中避免的一个困难症状。
        猜你喜欢
        • 2019-09-12
        • 1970-01-01
        • 2013-09-02
        • 1970-01-01
        • 2016-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多