提交 5fe47ffb 编写于 作者: N Natalia Selezneva

Workaround for bug in GradleInstallationManager.resolveGradleVersion()

Wrong gradle version when wrapper is used
fixed in 201
上级 7a479944
......@@ -11,6 +11,7 @@ import com.intellij.notification.*
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.externalSystem.importing.ImportSpecBuilder
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
import com.intellij.openapi.externalSystem.util.ExternalSystemUtil
......@@ -24,6 +25,7 @@ import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle
import org.jetbrains.kotlin.idea.scripting.gradle.roots.GradleBuildRootsManager
import org.jetbrains.kotlin.idea.util.application.getServiceSafe
import org.jetbrains.kotlin.psi.UserDataProperty
import org.jetbrains.plugins.gradle.service.GradleInstallationManager
import org.jetbrains.plugins.gradle.settings.GradleProjectSettings
import org.jetbrains.plugins.gradle.util.GradleConstants
......@@ -120,4 +122,12 @@ private class ScriptConfigurationChangedNotification(val project: Project) :
runPartialGradleImport(project)
}
}
}
fun getGradleVersion(project: Project, settings: GradleProjectSettings): String {
// workaround for bug in settings.resolveGradleVersion().version (fixed in 201)
return GradleInstallationManager.getGradleVersion(
ServiceManager.getService(GradleInstallationManager::class.java)
.getGradleHome(project, settings.externalProjectPath)?.path
) ?: GradleVersion.current().version
}
\ No newline at end of file
......@@ -104,4 +104,8 @@ class LoadConfigurationAction : AnAction(
&& isGradleKotlinScript(it)
}
}
}
fun getGradleVersion(project: Project, settings: GradleProjectSettings): String {
return settings.resolveGradleVersion().version
}
\ No newline at end of file
......@@ -273,7 +273,7 @@ class GradleBuildRootsManager(val project: Project) : GradleBuildRootsLocator(),
val actualSettings = getGradleProjectSettings(workingDir)
val buildRoot = getBuildRootByWorkingDir(workingDir)
val version = gradleVersion ?: actualSettings?.resolveGradleVersion()?.version
val version = gradleVersion ?: actualSettings?.let { getGradleVersion(project, it) }
return when {
buildRoot != null -> {
when {
......@@ -302,7 +302,7 @@ class GradleBuildRootsManager(val project: Project) : GradleBuildRootsLocator(),
remove(rootPath)
return null
} else {
val gradleVersion = version ?: settings.resolveGradleVersion().version
val gradleVersion = version ?: getGradleVersion(project, settings)
val newRoot = loadLinkedRoot(settings, gradleVersion)
add(newRoot)
return newRoot
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册