Как изменить уровень языка для всех модулей в IntelliJ
У меня есть проект с модулями MANY. Мы обновляемся до Java7, и я хочу, чтобы мой редактор отражал это. Теперь все мои модули специально устанавливают уровень языка на Java6, и для меня слишком много модулей, чтобы изменить этот параметр для каждого модуля. Как установить все модули на Java7? Еще лучше, как установить все модули на уровне языка проекта?
Ответы
Ответ 1
Как указано в комментарии Lambart к другому ответу, решение не работает для изменения целевой версии для всех модулей в целом.
Также обратите внимание, что установка целевого уровня для проекта в порядке, но эта целевая версия переопределяется той, которая указана в модуле.
Если вам, как и мне, не повезло, и вам нужно работать с более чем 100 модулями Java-монолита, а затем смену модулей один за другим будет больно.
Мое решение "раздражает", но работает под LINUX. Я предполагаю в примере, что вы хотите обновить форму 1.5 до 1.8.
Шаг 1) Вы должны зайти в папку .idea
и искать файл compiler.xml
.
Замените все значения target
в теге <module>
, например.
target="1.5"
to
target="1.8"
Шаг 2) зайдите в папку проекта и запустите следующий script
find . -type f -name "*.iml" -print0 | xargs -0 sed -i "s/JDK_1_5/JDK_1_8/g"
чтобы заменить весь уровень языка в модулях, совместимых с JDK8.
Ответ 2
В IntelliJ IDEA 14.0 перейдите в File | Структура проекта | Модули (Ctrl + Shift + Alt + S).
Список модулей поддерживает множественный выбор, поэтому
- Ctrl выберите отдельные модули
- Диапазон изменения кликов модулей
- Ctrl-A все модули
Выберите в раскрывающемся меню "Уровень языка" и выберите вручную уровень или "Использовать уровень языка проекта".
Аналогично изменению уровня языка для проекта выберите проект в ленте слева в разделе "Настройки проекта". Выпадающее меню доступно для уровня уровня проекта. Выберите необходимый уровень. Это установит значение по умолчанию для всех модулей проекта.
Источники
Ответ 3
Другие решения не сработали для меня, даже после изменения вручную compiler.xml
и всех .iml
файлов LANGUAGE_LEVEL
по-прежнему был установлен на "JDK_1_5"
. Это было вызвано плагином maven-compiler-plugin
.
Сменив его на следующее, он зафиксировал его:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
Надеюсь, что это решает и для других.