Переход на IntelliJ IDEA CE 2020.3

14 December 2020

Как всегда, никогда не было и вот опять :) Вышла новая версия IntelliJ IDEA, вышла новая версия Kotlin 1.4 и пришла пора обновлять старые проекты.

About IntelliJ IDEA
About IntelliJ IDEA

IntelliJ IDEA от фирмы Jetbrains моя любимая IDE, с помощью которой я решаю кучу всяких полезных задач на Java и Kotlin.

IntelliJ IDEA проект весьма сложный и при переходе с версии на версию пользователь может наступить на кучу различных мелких граблей. Если создать проект с нуля, то все будет работать просто изумительно, но вот если поменять IDE или например версию Kotlin, то ждите "чудес" при сборке ваших старых проектов :

  • Error: Could not find or load main class MainKt
  • Cannot access script base class 'org.gradle.kotlin.dsl.KotlinBuildScript'
  • Project 'main' not found in root project

Итак, как сделать так, чтобы проблем было поменьше? Все банально.

  • Обновляйте IDE как только выйдет обновление. Не тяните. Например можно воспользоваться продуктом Jetbarins Toolbox.
  • Обновляйте плагины.

На сайте https://youtrack.jetbrains.com/ можно найти сообщения о проблемах, с которыми встретились другие пользователи.

Переход на IntelliJ IDEA CE 2020.3

После того, как вы обновились сделайте Invalidate Caches / Restart

Переход на IntelliJ IDEA CE 2020.3

После этого зайдите в Run/Debug configuration и пересоздайте конфигурацию.

Переход на IntelliJ IDEA CE 2020.3

Без этого вы рискуете получить ошибку "Error: Could not find or load main class MainKt". Пересоберите проект.

Еще один момент. Я заметил, что в последнее время IntelliJ IDEA любит проекты с Gradle (видимо большинство пользователей работает с Gradle) и не очень любит проекты IntelliJ.

Переход на IntelliJ IDEA CE 2020.3

Раньше я создавал проекты типа IntelliJ (для написания несложных вещей они были самые простые), а Gradle пользовался только в Android Studio. В новой версии IDE со старыми проектами у меня возникло много проблем (например, с запуском JUnit) и я начал переделывать их на использование Gradle. Кроме того Gradle оказался значительно удобнее.