diff --git a/plugins/gradle/src/META-INF/gradle-scala-integration.xml b/plugins/gradle/src/META-INF/gradle-scala-integration.xml
deleted file mode 100644
index 707d61670f1a..000000000000
--- a/plugins/gradle/src/META-INF/gradle-scala-integration.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/plugins/gradle/src/META-INF/plugin.xml b/plugins/gradle/src/META-INF/plugin.xml
index d944e82ed36f..72fa9e765c7d 100644
--- a/plugins/gradle/src/META-INF/plugin.xml
+++ b/plugins/gradle/src/META-INF/plugin.xml
@@ -41,7 +41,6 @@
org.intellij.groovy
com.intellij.javaee
org.jetbrains.idea.maven
- org.intellij.scala
@@ -63,6 +62,7 @@
+
diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/integrations/scala/ScalaGradleProjectResolverExtension.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/integrations/scala/ScalaGradleProjectResolverExtension.java
index 657d064e2886..1b5df1420a2d 100644
--- a/plugins/gradle/src/org/jetbrains/plugins/gradle/integrations/scala/ScalaGradleProjectResolverExtension.java
+++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/integrations/scala/ScalaGradleProjectResolverExtension.java
@@ -31,6 +31,7 @@ import org.jetbrains.plugins.gradle.model.data.ScalaCompileOptionsData;
import org.jetbrains.plugins.gradle.model.data.ScalaModelData;
import org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension;
import org.jetbrains.plugins.gradle.util.GradleConstants;
+import org.jetbrains.plugins.gradle.util.GradleUtil;
import java.util.Collections;
import java.util.Set;
@@ -43,8 +44,12 @@ import java.util.Set;
public class ScalaGradleProjectResolverExtension extends AbstractProjectResolverExtension {
private static final Logger LOG = Logger.getInstance(ScalaGradleProjectResolverExtension.class);
+ private static final boolean scalaPluginPresent = GradleUtil.isPluginPresent("org.intellij.scala");
+
@Override
public void populateModuleExtraModels(@NotNull IdeaModule gradleModule, @NotNull DataNode ideModule) {
+ if (!scalaPluginPresent) return;
+
ScalaModel scalaModel = resolverCtx.getExtraProject(gradleModule, ScalaModel.class);
if (scalaModel != null) {
ScalaModelData scalaModelData = create(scalaModel);
@@ -57,7 +62,7 @@ public class ScalaGradleProjectResolverExtension extends AbstractProjectResolver
@NotNull
@Override
public Set getExtraProjectModelClasses() {
- return Collections.singleton(ScalaModel.class);
+ return scalaPluginPresent ? Collections.singleton(ScalaModel.class) : Collections.emptySet();
}
diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/util/GradleUtil.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/util/GradleUtil.java
index fb0ba0ac37e3..d5750d5987c8 100644
--- a/plugins/gradle/src/org/jetbrains/plugins/gradle/util/GradleUtil.java
+++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/util/GradleUtil.java
@@ -1,7 +1,11 @@
package org.jetbrains.plugins.gradle.util;
import com.intellij.ide.actions.OpenProjectFileChooserDescriptor;
+import com.intellij.ide.plugins.IdeaPluginDescriptor;
+import com.intellij.ide.plugins.PluginManager;
+import com.intellij.ide.plugins.PluginManagerCore;
import com.intellij.ide.util.PropertiesComponent;
+import com.intellij.openapi.extensions.PluginId;
import com.intellij.openapi.externalSystem.model.ExternalSystemException;
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil;
import com.intellij.openapi.externalSystem.util.ExternalSystemConstants;
@@ -243,4 +247,12 @@ public class GradleUtil {
public static String createJvmArg(@NotNull String name, @NotNull String value) {
return String.format(JVM_ARG_FORMAT, name, value);
}
+
+ public static boolean isPluginPresent(@NotNull String id) {
+ PluginId pluginId = PluginId.getRegisteredIds().get(id);
+ if (pluginId == null) return false;
+ IdeaPluginDescriptor pluginDescriptor = PluginManager.getPlugin(pluginId);
+ if (pluginDescriptor == null) return false;
+ return !PluginManagerCore.shouldSkipPlugin(pluginDescriptor);
+ }
}