IDEA JetBrains IntelliJ - Ошибка компиляции в make, но исправна при компиляции с использованием Maven, и IntelliJ не сообщило об ошибках в файле класса - PullRequest
40 голосов
/ 09 сентября 2010

Итак, у меня есть модуль maven (module-A) в IntelliJ.Недавно я переместил некоторые классы из него в другой новый модуль maven (module-B) и добавил к нему зависимость.Сделав это, я также изменил сигнатуру метода одного из перемещенных классов (теперь в модуле-B).

Я повторно импортировал poms, чтобы IntelliJ обнаружил изменения зависимостей и обеспечил правильный импорт всех Java-файлов для затронутых файлов.Теперь, когда я пытаюсь запустить свое веб-приложение (которое зависит от двух модулей), я получаю ошибку компиляции в классе в модуле-A, вызывая модифицированный метод класса в модуле-B.

Сообщение об ошибке в основном говорит о том, что этот метод не существует, но считает, что старый метод все еще существует!Я нажимаю на ошибку 'make', и это приводит меня к строке в классе в модуле-A, вызывающей модифицированный метод ... странная вещь, IntelliJ знает, что это нормально в файле.т. е. метод не подчеркнут красным, как обычно бывает при ошибке компиляции, но имя файла класса: (

Я скомпилировал его из командной строки, используя 'mvn install' (также установив модуль B)и все это успешно. Я удалил каталог классов в цели модуля-A и модуля-B, а также сделал недействительными кеши IntelliJ и перезапустил ... все еще происходит ... есть идеи?

Ответы [ 19 ]

1 голос
/ 03 сентября 2017

В моем случае я пометил каталог как «Test Sources Root», но IDEA отметил его в родительском проекте Maven.Снятие отметки в File-> Project project ...-> Modules решило проблему.

1 голос
/ 22 октября 2013

У меня просто была похожая проблема, которая сводила меня с ума. Я сделал все остальные вещи, упомянутые в ответах выше, потому что я использовал Intellij навсегда, но ничего не получалось. В конце концов я обнаружил, что в части Intellij для проектов maven один из моих модулей был помечен как «игнорировать», и простая команда unignore из контекстного меню справилась.

0 голосов
/ 04 апреля 2019

Ни один из приведенных выше ответов не сработал для меня.

В моем случае мне пришлось наконец создать явную Конфигурацию запуска Maven для модуля (с командной строкой как «чистая установка») и затем запустить его.

В Run > Edit Configurations

0 голосов
/ 04 марта 2018

Это случилось со мной ... что исправило то, что он понял, что в исходном каталоге был дополнительный файл main.imlПри удалении этого сообщения ошибки компиляции исчезли.

0 голосов
/ 08 сентября 2017

Исправление было в том, что я сделал JAVAC вместо AJC, и я, конечно, поставил 1,8 в соответствии с вашей версией JDK.

по какой-то причине, когда я объявил недействительным и перезапустил intellij, он был установлен по умолчанию!

after i fixed i made it javac instead of Ajc

моя версия

enter image description here

0 голосов
/ 21 мая 2015

Мне стыдно говорить, но у нас тоже была эта проблема, но это было из-за ошибки в названии нашего пакета.

При создании пакетов для нового проекта я случайно создал пакет под названием "org.package ".

Тогда мой проект имел структуру каталогов:

/ src / main / java / org.package /

, котораявызвал разного рода хаос с IntilliJ.

Как только в файловой системе была создана правильная структура папок, IntelliJ работал отлично.

/ src / main / java / org / package /

Обратите внимание на разницу в /org.package/ss / org / package /

0 голосов
/ 07 октября 2014

Я столкнулся с подобной проблемой после обновления с IntelliJ 12 до 13. После нескольких деинсталляций и переустановок (нескольких версий intelliJ), многочисленных очисток и очистки хранилища .m2 я наконец понял, в чем заключается моя проблема. *

В моих настройках intelliJ не удалось подключиться к репозиториям, упомянутым в моем основном файле POM. это было в свою очередь из-за альтернативного хранилища, которое было упомянуто как часть моего файла pom. Как только POM был создан, чтобы указывать на правильный репозиторий, у всех моих классов были решены проблемы с компиляцией.

Чтобы проверить, подключены ли ваши репозитории, перейдите в Файл -> Настройки -> Maven -> Репозитории

Здесь ваши индексируемые репозитории maven должны быть успешно подключены. В противном случае intelliJ не сможет разрешить большинство зависимостей от сторонних производителей и модулей.

0 голосов
/ 03 января 2014

Я столкнулся с этой проблемой сегодня после обновления с 12 до 13.

Позже я исправил проблему, так как использовал одно и то же имя для Project и Module и, похоже, Intellij это разрешает, но не может правильно ее обработать.

Не знаю, почему настройка повлияет на компиляцию, хотя в java-редакторе ошибки нет.Должна быть ошибка в версии 13.

0 голосов
/ 18 декабря 2013

У меня было очень похожее поведение. Запуск (Scala-) тестов всегда завершался неудачей из-за ошибок в несвязанных Java-классах во время шага make.

Оказалось, я включил «глобальную» библиотеку SDK, которая столкнулась с одной из зависимостей проекта. Правильное полезное сообщение об ошибке появилось только после того, как я удалил шаг make из теста. Затем я удалил дублирующую библиотеку, снова добавил шаг теста в тест, и теперь все работает нормально.

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