我正在使用IntelliJ IDEA Pro 13.1.2。从未使用过13以下的任何版本。
尝试从IDE运行build.gradle
时,我收到消息:
模块不支持gradle
我可以从命令行运行这个脚本。
“root”目录有.gradle
和gradle
个子目录,一般来说它的结构与同一项目中的另一个模块非常相似,我可以从IDE运行它的构建而没有问题
有关进一步排查的建议吗?
答案 0 :(得分:57)
如果您没有通过"导入项目"设置IDE项目。然后指向Gradle项目,您可能必须将IDE项目链接到Gradle项目。这可以在" Gradle"窗口。
答案 1 :(得分:46)
对我有用的答案是重新启动IntelliJ - 在启动时,会识别build.gradle并设置项目。
唯一对我有用的是使用菜单File > Close Project
并重新打开它。 IDEA弹出一个对话框,说明"从Gradle文件导入项目"或者那种效果。
死胡同:以下是死胡同列表,所以不要浪费你的时间。我一直看到"模块没有gradle"尽管遵循了所有这些死胡同。在阅读本文时,这些答案都没有奏效:
File > Open
gradle.build打开文件进行编辑,但无法解决问题build/
文件夹之后,创建运行gradle的运行配置也没有任何效果./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。 试试这个:
答案 7 :(得分:0)
希望它适合你。
答案 8 :(得分:0)
这个问题发生在我身上,因为我为我的项目选择了一个不同于artifactID的名称。为了防止出现此问题,请确保您的项目名称与artifactID相同。
答案 9 :(得分:0)
您最初可能是通过File->New->Project From Version Control
创建项目的。这似乎并不总是将项目设置为Gradle项目,即使根目录中有build.gradle也是如此。
要解决这个问题: -
项目将被识别为Gradle并按此设置。