模块...没有gradle支持

时间:2014-05-07 19:52:49

标签: intellij-idea gradle build.gradle intellij-13

我正在使用IntelliJ IDEA Pro 13.1.2。从未使用过13以下的任何版本。

尝试从IDE运行build.gradle时,我收到消息:

  

模块不支持gradle

我可以从命令行运行这个脚本。

“root”目录有.gradlegradle个子目录,一般来说它的结构与同一项目中的另一个模块非常相似,我可以从IDE运行它的构建而没有问题

有关进一步排查的建议吗?

10 个答案:

答案 0 :(得分:57)

如果您没有通过"导入项目"设置IDE项目。然后指向Gradle项目,您可能必须将IDE项目链接到Gradle项目。这可以在" Gradle"窗口。

答案 1 :(得分:46)

对我有用的答案是重新启动IntelliJ - 在启动时,会识别build.gradle并设置项目。

唯一对我有用的是使用菜单File > Close Project并重新打开它。 IDEA弹出一个对话框,说明"从Gradle文件导入项目"或者那种效果。

死胡同:以下是死胡同列表,所以不要浪费你的时间。我一直看到"模块没有gradle"尽管遵循了所有这些死胡同。在阅读本文时,这些答案都没有奏效:

  1. 没有Gradle工具窗口,因此我无法同步项目
  2. 点击File > Open gradle.build打开文件进行编辑,但无法解决问题
  3. 即使在我看到创建了build/文件夹之后,创建运行gradle的运行配置也没有任何效果
  4. 从命令行运行./gradlew只会创建gradle文件并且无法修复IntelliJ

答案 2 :(得分:12)

我通过点击菜单

解决了这个问题
package com.thinkaurelius.titan.diskstorage.es;

import io.searchbox.client.JestClient;
import io.searchbox.client.JestClientFactory;
import io.searchbox.client.JestResult;
import io.searchbox.client.config.HttpClientConfig;
import org.elasticsearch.ElasticsearchException;
import org.elasticsearch.action.*;
import org.elasticsearch.client.AdminClient;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.support.AbstractClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.threadpool.ThreadPool;

import java.io.IOException;

public class ElasticsearchHttpClient extends AbstractClient {
    private final JestClient internalClient;
    private final ThreadPool pool;

    public ElasticsearchHttpClient(String hostname, int port) {
        JestClientFactory factory = new JestClientFactory();
        factory.setHttpClientConfig(new HttpClientConfig
                .Builder(String.format("http://%s:%d", hostname, port))
                .multiThreaded(true)
                .build());
        JestClient client = factory.getObject();

        this.pool = new ThreadPool("jest");
        this.internalClient = client;
    }

    @Override
    public AdminClient admin() {
        return null;
    }

    @Override
    public Settings settings() {
        return null;
    }

    @Override
    public <Request extends ActionRequest, Response extends ActionResponse, RequestBuilder extends ActionRequestBuilder<Request, Response, RequestBuilder, Client>> ActionFuture<Response> execute(Action<Request, Response, RequestBuilder, Client> action, Request request) {
        try {
            JestResult response = internalClient.execute(convertRequest(action, request));
            return convertResponse(response);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    @Override
    public <Request extends ActionRequest, Response extends ActionResponse, RequestBuilder extends ActionRequestBuilder<Request, Response, RequestBuilder, Client>> void execute(Action<Request, Response, RequestBuilder, Client> action, Request request, ActionListener<Response> listener) {
        execute(action, request);
    }

    private <Response extends ActionResponse> ActionFuture<Response> convertResponse(JestResult result) {
        // TODO How to convert a JestResult a Elasticsearch ActionResponse/ActionFuture?
        return null;
    }

    private <Request extends ActionRequest, Response extends ActionResponse, RequestBuilder extends ActionRequestBuilder<Request, Response, RequestBuilder, Client>> io.searchbox.action.Action<JestResult> convertRequest(Action<Request, Response, RequestBuilder, Client> action, Request request) {
        // TODO How to convert an Elasticsearch Action<..> and Request to a Jest Action<JestResult>?
        return null;
    }

    @Override
    public ThreadPool threadPool() {
        return pool;
    }

    @Override
    public void close() throws ElasticsearchException {
        pool.shutdownNow();
    }
}

使用新创建的运行配置,它可以工作。 我希望这会对你们中的一些人有所帮助。

答案 3 :(得分:9)

工具&gt; Grails&gt;更改SDK版本

答案 4 :(得分:5)

正如其他人所说,其他答案都没有对我有用。唯一有效的是:

关闭项目,然后将其作为Gradle项目导入。

答案 5 :(得分:4)

对于非gradle项目,您还可以从项目中删除该模块并重新导入它。这有助于避免消息&#34;模块没有gradle&#34;支持。

答案 6 :(得分:3)

我正在使用android studio,intellij。 试试这个:

  • 工具&gt; Android&gt; (使用gradle文件同步项目)
  • 运行gradle build

答案 7 :(得分:0)

  1. 导入时不要选择项目目录
  2. 选择要导入的Gradle文件作为Gradle项目
  3. 我总是使用Local Gradle Distribution和Offline工作来构建,然后切换回来。
  4. 它将自动构建,您将在任务窗口中看到gradle任务。
  5. 希望它适合你。

答案 8 :(得分:0)

这个问题发生在我身上,因为我为我的项目选择了一个不同于artifactID的名称。为了防止出现此问题,请确保您的项目名称与artifactID相同。

答案 9 :(得分:0)

您最初可能是通过File->New->Project From Version Control创建项目的。这似乎并不总是将项目设置为Gradle项目,即使根目录中有build.gradle也是如此。 要解决这个问题: -

  1. 关闭IntelliJ。
  2. 删除项目中的.idea文件夹。
  3. 启动IntelliJ并选择“打开”。
  4. 导航到项目文件夹并将其打开。
  5. 项目将被识别为Gradle并按此设置。