Вчера я перешел на IntelliJ IDEA из Eclipse.
Я также использую JRebel с WebSphere Server 7.
Кажется, теперь все работает нормально, за исключением того, что когда я изменяю файл Java и нажимаю «Сохранить» , IntelliJ не перекомпилирует файл, чтобы JRebel мог его забрать.
Функция Eclipse « Построить автоматически » решила эту проблему.
В IntelliJ IDEA я должен нажать CTRL+ SHIFT+, 9чтобы заново скомпилировать соответствующий класс, чтобы JRebel мог его поднять. Если изменения сделаны в двух файлах , я должен сделать это на каждом из них, и, поскольку IntelliJ использует механизм сохранения всех, довольно сложно понять, что перекомпилировать вручную, что мне не очень интересно.
Разве нет способа заставить IntelliJ делать это самостоятельно ?
Ctrl
+F9
? Это создаст весь проект, и если будут изменены только два файла, они будут перестроены.Ответы:
ОБНОВЛЕНО
Для выпусков IntelliJ IDEA 12+ мы можем автоматически создавать отредактированные источники, если мы используем опцию внешнего компилятора. Нужно только проверить опцию « Автоматически создавать проект », расположенную в настройках « Компилятора »:
Кроме того, если вы хотите выполнить горячее развертывание во время работы приложения или если вы используете весеннюю загрузку devtools, вам также следует включить
compiler.automake.allow.when.app.running
регистрацию из реестра. Это автоматически скомпилирует ваши изменения.Используя Ctrl+ Shift+ A(или ⌘+ Shift+ Aна Mac),
Registry
когда окна реестра открыты, найдите и включитеcompiler.automake.allow.when.app.running
, смотрите здесь:Для версий старше 12 вы можете использовать плагин EclipseMode, чтобы IDEA автоматически компилировала сохраненные файлы.
Дополнительные советы см. В руководстве «Переход с Eclipse на IntelliJ IDEA» .
источник
Пожалуйста, следуйте обоим шагам:
1 - включить Automake из компилятора
make project automatically
Make Project automatically
функцию2 - Включить Automake, когда приложение работает
Registry
compiler.automake.allow.when.app.running
и включите его или установите флажок рядом с нимПримечание: перезапустите приложение сейчас :)
Примечание: Это также должно позволить перезагрузку в реальном времени с помощью devtools с пружинной загрузкой.
источник
ПРЕДУПРЕЖДЕНИЕ
Плагин Eclipse Mode устарел и не совместим с последними сборками IDEA 12+. Если вы установите его, IDE будет зависать при каждом изменении файла и будет реагировать очень медленно.
IntelliJ IDEA не использует автоматическую сборку, он обнаруживает ошибки на лету, а не через компилятор. Аналогичный режим Eclipse будет доступен в IDEA 12 :
Использование
Build
|Make
он вызывает инкрементный процесс make, который компилирует только измененные и зависимые файлы (это очень быстро).Существует также запись FAQ, которая может помочь.
Обновление функции автоматического создания : Когда конфигурация запуска / отладки работает, не
Make project automatically
имеет никакого эффекта. Классы на диске будут меняться только наBuild
|Make
, Это основное дизайнерское решение, так как, по нашему мнению, изменения класса на диске всегда должны быть под контролем пользователя. Автоматическая сборка не является подражанием функции Eclipse, она работает по-другому, и ее основная цель - сэкономить время ожидания готовности классов, когда они действительно необходимы (перед запуском приложения или тестов). Автоматическая сборка не заменяет явную компиляцию, которую вам все равно нужно запускать, как в случае, описанном в этом вопросе. Если вы ищете другое поведение, плагин EclipseMode, указанный в FAQ, будет лучшим выбором.источник
Вы можете
ctrl+s
сохранить раскладку и скомпилировать ее за один шаг. Зайдите в настройки раскладки клавиатуры и найдитеCompile
.источник
На самом деле нет никакой разницы, так как оба требуют 1 клик:
Самое простое решение - просто привыкнуть к нему. Потому что, когда вы проводите большую часть своего дневного времени в IDE, лучше иметь быстрые привычки в одном, чем медленные в нескольких.
источник
Я закончил тем, что записал Макрос, чтобы сохранить и скомпилировать за один шаг, и раскладать карту
Ctrl+s
к нему.источник
Мне удалось решить это с помощью макросов.
Я начал запись макроса:
Назовите это что-нибудь полезное, например, «SaveAndMake».
Теперь просто удалите привязку «Сохранить все» и добавьте такую же привязку к макросу!
Так что теперь, каждый раз, когда я сохраняю, он сохраняет и делает грязную компиляцию, и теперь jRebel корректно обнаруживает все изменения.
источник
Пожалуйста, внимательно следуйте этим шагам, чтобы включить его.
1) создать проект Spring Boot с SB V1.3 и добавить «Devtools» (1 *) в зависимости
2) вызовите Help-> Find Action ... и введите «Registry», в диалоговом окне найдите «automake» и включите запись « compiler.automake.allow.when.app.running », закройте диалог
3) включить фоновую компиляцию в Настройки-> Сборка, Выполнение, Развертывание-> Компилятор «Создать проект автоматически»
4) откройте конфигурацию Spring Boot run, вы должны получить предупреждение, если все настроено правильно
5) Запустите свое приложение, меняйте классы на лету
Пожалуйста, сообщите о своем опыте и проблемах в качестве комментариев к этой проблеме.
Нажмите здесь для дополнительной информации
источник
Единственное, что сработало для меня в моем проекте maven, на которое это повлияло, - это добавление цели «test-compile» в конфигурацию выполнения моих модульных тестов. Невероятно неуклюжее решение, но оно работает.
источник
Intellij тихо завершает работу, когда сталкивается с проблемой компиляции в другом модуле, и тогда автоматическая сборка не выполняется. Так что проверь свое
Problems
окноисточник
Я была такая же проблема. Я использовал «Режим энергосбережения», который предотвращает пошаговую компиляцию и показывает ошибки компиляции.
источник
Используйте плагин «Переформатировать и скомпилировать» (вдохновленный плагином «Save Actions» от Alexandre DuBreuil):
https://plugins.jetbrains.com/plugin/8231?pr=idea_ce
На данный момент я предлагаю только jar-файл, но это самая важная часть кода:
источник
Отредактируйте свою конфигурацию Run / Debug так, чтобы перед запуском была выбрана опция Build
После сборки выбран вариант
Вышеупомянутое решение помогло мне, работая над моим набором тестов JBehave.
источник
Он не работал для меня из-за наличия ненужного модуля в структуре моего проекта. Тесты были выполнены с использованием другого модуля, я полагаю.
Я не знаю, как это закончилось, но удаление проблемы решило проблему.
Убедитесь, что ваши настройки Run / Debug используют модуль, который вы строите с автосохранением.
Например: см. Модуль в
Вы можете изменить модули в Структуре проекта - Модули
источник
Я была такая же проблема. Я думаю, что было бы целесообразно проверить, может ли ваш класс быть скомпилирован или нет. Нажмите «Перекомпилировать» (по умолчанию Ctrl + Shift + F9). Если он не работает, вы должны выяснить, почему он не компилируется.
В моем случае код не компилировался автоматически, потому что при компиляции были скрытые ошибки (они нигде не отображались в журналах и работала maven clean-install). Основной причиной была неправильная структура проекта -> конфигурация модулей, поэтому Intellij Idea не смогла собрать ее в соответствии с этой конфигурацией.
источник
я имел такой же вопрос , а также значок проблемы файл в IntelliJ, поэтому я удалил
.idea
проект импорта папки и повторно решить мою проблему.источник
Я получаю сообщение об ошибке: некоторые файлы отсутствуют в classpath. Поэтому я просто удаляю поврежденный файл jar и выполняю следующие шаги
источник
Недостаточно очков, чтобы прокомментировать существующий ответ, но, как и некоторые люди выше, я просто добавил макрос и раскладку ключей в Упорядочить импорт / Формат / Сохранить все / FastReload (F9) / Синхронизировать .
Синхронизация добавлена, так как кажется, что это единственный способ увидеть обновления ресурсов, измененных внешними инструментами сборки / наблюдателями (т. Е. Веб-пакетом).
Процесс медленнее, чем затмение - и для обновления внешнего файла часто приходится запускать команду несколько раз - но предположим, что я могу с этим смириться.
источник