Идея продолжает менять цель компиляции с 1.8 на 1.6 для Kotlin - PullRequest
0 голосов
/ 20 октября 2018

Я работаю над новым проектом Kotlin, основанным на Maven и JDK 8, используя Intellij Idea.Все замечательно, за исключением того, что после каждого повторного импорта Maven цель компиляции по какой-то причине переключается с 1.8 на 1.6.

Я буквально попробовал все от 2 лучших ответов до той же проблемы (хотя из мира Java), но у меня ничего не получалось.Я также мигрировал в Gradle в надежде преодолеть проблему, но это тоже не помогло.Помимо упомянутого SO-вопроса, я прошел через тонну форумов, и совет всегда был таким же, как в упомянутых SO-ответах.

Итак, вопрос в том, как я могу помешать Idea переключить целевую версию Java послереимпорт

Ответы [ 2 ]

0 голосов
/ 24 марта 2019

Решено с помощью:

  compileKotlin {
    kotlinOptions.jvmTarget = 1.8
  }

Если это не работает для вас, запустите задачу 'compileKotlin' и проверьте вывод.Возможно, в скрипте сборки есть какая-то другая ошибка, которая не позволяет применить эту опцию.

0 голосов
/ 20 октября 2018

Итак, после многих попыток попробовать и ошибиться я обнаружил, что Idea выбирает версию 1.6, потому что это целевая версия JVM Kotlin по умолчанию, и я не установил эту версию 1.8 где-либо в pom.xml или build.gradle .Если эта версия там не определена, Idea склонна игнорировать настройки проекта и придерживаться настроек по умолчанию.

Это означает, что решение состоит в том, чтобы установить версию в плагине kotlin вручную , но сначала убедитесь, что вы выполнили все перечисленные в принятом ответе на вопрос , относящийся к тому жепроблема, но в Java .

Теперь, если вы используете Gradle (я остался с ним после миграции), вы должны просто следовать инструкциям, чтобы включить плагин kotlin в build.gradle как написано в документе kotlin о том, как использовать его с Gradle .Однако этого недостаточно, поэтому вам нужно прокрутить этот документ вниз и найти, в частности, параметры компиляции kotlin , jvmTarget.Там вы обнаружите, что версия 1.6 действительно по умолчанию, и вы можете приступить к настройке задачи компиляции в build.gradle :

compileKotlin { kotlinOptions.jvmTarget = 1.8 }

Вуаля, сейчаскаждый реимпорт придерживается 1.8.Если вы используете Maven, есть также плагин, который вы можете использовать (просто Google), и я уверен, что в вашем распоряжении будут те же настройки jvmTarget, хотя я еще не пробовал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...