KTIJ-585 [Gradle Runner]: main() cannot be launched from AS 4.1

Android gradle-project model differs from what we have for pure Java
and MPP. It's the reason why application classpath cannot be collected
correctly.
Until universal solution is provided delegation to gradle is put under
the registry flag. If disable platform runner is used as before.
This commit is contained in:
Andrei Klunnyi
2020-11-30 15:44:37 +00:00
parent 995d96e5a3
commit 4817d5e01d
2 changed files with 10 additions and 1 deletions
@@ -33,6 +33,7 @@ import com.intellij.openapi.projectRoots.ex.JavaSdkUtil
import com.intellij.openapi.roots.ModuleRootManager import com.intellij.openapi.roots.ModuleRootManager
import com.intellij.openapi.roots.ProjectFileIndex import com.intellij.openapi.roots.ProjectFileIndex
import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.util.registry.Registry
import com.intellij.openapi.util.text.StringUtil import com.intellij.openapi.util.text.StringUtil
import com.intellij.psi.PsiClass import com.intellij.psi.PsiClass
import com.intellij.psi.PsiJavaModule import com.intellij.psi.PsiJavaModule
@@ -50,7 +51,10 @@ import org.jetbrains.plugins.gradle.util.GradleConstants
*/ */
class KotlinGradleAppEnvProvider : GradleExecutionEnvironmentProvider { class KotlinGradleAppEnvProvider : GradleExecutionEnvironmentProvider {
override fun isApplicable(task: ExecuteRunConfigurationTask): Boolean = task.runProfile is KotlinRunConfiguration override fun isApplicable(task: ExecuteRunConfigurationTask): Boolean {
val enabled = Registry.`is`("kotlin.gradle-run.enabled", false)
return enabled && task.runProfile is KotlinRunConfiguration
}
override fun createExecutionEnvironment( override fun createExecutionEnvironment(
project: Project, executeRunConfigurationTask: ExecuteRunConfigurationTask, executor: Executor? project: Project, executeRunConfigurationTask: ExecuteRunConfigurationTask, executor: Executor?
@@ -135,6 +135,11 @@
defaultValue="false" defaultValue="false"
restartRequired="false"/> restartRequired="false"/>
<registryKey key="kotlin.gradle-run.enabled"
description="Enable delegation of app running to gradle"
defaultValue="false"
restartRequired="false"/>
<fileEditorProvider implementation="org.jetbrains.kotlin.idea.scratch.ui.KtScratchFileEditorProvider"/> <fileEditorProvider implementation="org.jetbrains.kotlin.idea.scratch.ui.KtScratchFileEditorProvider"/>
<jbProtocolCommand implementation="org.jetbrains.kotlin.tools.projectWizard.wizard.OpenNewProjectWizardProtocolCommand"/> <jbProtocolCommand implementation="org.jetbrains.kotlin.tools.projectWizard.wizard.OpenNewProjectWizardProtocolCommand"/>