in plugin/src/main/kotlin/org/jetbrains/intellij/tasks/AbstractInspectionsTask.kt [265:295]
fun run() {
try {
val parameters = getIdeaRunnerParameters()
val jar = project.getProjectJar("inspection-runner")
logger.info("InspectionPlugin: Backend jar: $jar")
val ideaHomeDirectory = parameters.ideaHomeDirectory
logger.info("Idea home directory: $ideaHomeDirectory")
val runner = Runner.getOrInit {
project.gradle.root.addBuildListener(IdeaFinishingListener())
ProxyRunner(jar, ideaHomeDirectory) { level, message ->
when (level) {
LoggerLevel.ERROR -> logger.error("InspectionPlugin: $message")
LoggerLevel.WARNING -> logger.warn("InspectionPlugin: $message")
LoggerLevel.INFO -> logger.info("InspectionPlugin: $message")
LoggerLevel.DEBUG -> logger.debug("InspectionPlugin: $message")
}
}
}
val outcome = runner.run(parameters)
when (outcome) {
RunnerOutcome.CRASH -> exception(this, "Task execution exception")
RunnerOutcome.FAIL -> if (!getIgnoreFailures()) exception(this, "Task execution failure")
RunnerOutcome.SUCCESS -> logger.info("InspectionPlugin: RUN SUCCESS")
}
} catch (e: Throwable) {
logger.error("InspectionPlugin: Exception during running: ${e.javaClass.name}: ${e.message}")
throw TaskExecutionException(this, e)
} finally {
Runner.finalize(logger)
}
}