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.ProjectFileIndex
import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.util.registry.Registry
import com.intellij.openapi.util.text.StringUtil
import com.intellij.psi.PsiClass
import com.intellij.psi.PsiJavaModule
@@ -50,7 +51,10 @@ import org.jetbrains.plugins.gradle.util.GradleConstants
*/
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(
project: Project, executeRunConfigurationTask: ExecuteRunConfigurationTask, executor: Executor?
@@ -135,6 +135,11 @@
defaultValue="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"/>
<jbProtocolCommand implementation="org.jetbrains.kotlin.tools.projectWizard.wizard.OpenNewProjectWizardProtocolCommand"/>