Подтвердить что ты не робот

Источник библиотеки не соответствует байт-коду для класса

Не знаю, что здесь не так. Я удалил все файлы, которые у меня были из локального репозитория maven, и пусть он загружает все с нуля, но я не могу избавиться от этой ошибки:

введите описание изображения здесь

Почему я вижу это и как я могу избавиться от него?


[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ wordvectors ---
[INFO] masterthesis.code:wordvectors:jar:1.0-SNAPSHOT
[INFO] +- org.apache.spark:spark-core_2.10:jar:1.6.0:compile
[INFO] |  \- org.apache.hadoop:hadoop-client:jar:2.2.0:compile
[INFO] |     \- org.apache.hadoop:hadoop-common:jar:2.2.0:compile
[INFO] |        \- commons-configuration:commons-configuration:jar:1.6:compile
[INFO] |           \- (commons-collections:commons-collections:jar:3.2.1:compile - omitted for conflict with 20040616)
[INFO] \- org.deeplearning4j:deeplearning4j-ui:jar:0.4-rc3.8:compile
[INFO]    \- org.deeplearning4j:deeplearning4j-nlp:jar:0.4-rc3.8:compile
[INFO]       \- it.unimi.dsi:dsiutils:jar:2.2.2:compile
[INFO]          \- commons-collections:commons-collections:jar:20040616:compile
4b9b3361

Ответ 1

Нет ничего плохого в IDEA, ни ваших зависимостях, ни локальных кэшах maven, это правильно идентифицирует несоответствие.

Здесь, как проверить:

  • Открытый класс, о котором идет речь
  • Нажмите "Показать diff"
  • Выберите "Игнорировать пробелы и пустые строки"

diff screenshot

Вы можете четко видеть (игнорируя JavaDoc и FQCN), что в файле класса есть дополнительные проверки, включенные для аннотированных аргументов @NonNull. Импорт говорит lombok.NonNull, а документация показывает, что это преобразование произойдет.

Я думаю, что лучший способ действий - либо проигнорировать это предупреждение, либо попросить сопровождающих проекта построить исходный файл source.jar из исходного кода, обработанного lombok, если это возможно. Я думаю, что им нужно будет использовать delomboking и этот плагин Maven, но никогда не создавал сам код lombok.

Ответ 2

Возникла та же проблема - очистил gradlew из командной строки, затем зашел в Android Studio и сделал File → Invalidate Caches and Restart, и все снова стало хорошо..

Ответ 3

В решении этого мне не нужно было обходиться с Maven, и он имел дело с IntelliJ IDEA.

Для меня эта проблема возникла из-за путаницы между тремя понятиями в IntelliJ IDEA: модулями, библиотеками и зависимостями. У меня были разные проекты, с использованием разных пакетов, некоторые из которых ссылались друг на друга непоследовательно. Я также не согласен с тем, как обращаться к загруженным сторонним пакетам.

Это было легко, когда я выделил три концепции модулей, библиотек и зависимостей. Как я прояснил их в своем уме:

1) Библиотеки относятся к коду (скомпилированному или нет), который не изменится.

2) Модули относятся к частям проекта (если вы работаете в одиночку), где код может быть изменен.

3) зависимость (для этого разговора) - это библиотека или другой модуль, который будет использовать конкретный модуль.

Я получил ошибку от добавления кода текущего проекта, который изначально был создан другой IDE, в качестве зависимости от IntelliJ IDEA. Теоретически это должно работать, и это так, но, как и вы, я не могу игнорировать большой красный баннер в верхней части моей среды разработки!

Чтобы решить проблему:

Модули Откройте "Файл" > "Структура проекта" > "Модули" и с помощью значка "верхний левый зеленый плюс" (а не справа) добавили другие проекты, в которых код может измениться. Это делает их "живыми" для IntelliJ, а не пыльной старой неизменной библиотеки, которая, если она изменится, может вызвать крик тревоги на вас. На этом этапе используйте большую панель, занимающую большую часть диалога для проверки импортированных банок, исходного кода и т.д., Чтобы проверить, что вы хотите.

Добавление модуля

Библиотеки Откройте "Файл" > "Структура проекта" > "Библиотеки" и снова с помощью верхнего левого зеленого знака плюс добавьте папку, содержащую код, который не изменится. Другой знак "зеленый плюс" справа позволяет вам добавить внутренние папки в уже добавленную библиотеку, но IntelliJ умеет находить их в разных структурах проекта, поэтому подумайте о том, чтобы начать с нуля добавление новой библиотеки, а не добавлять определенные папки, которые вы думаете отсутствуют и приводят к тому, что существует несколько копий, а другая вещь вызывает путаницу (понятно) для IntelliJ.

Добавление библиотеки

Зависимости Теперь все должно быть готово для вас вернуться к файлу > Структура проектa > Модули. На этот раз перейдите на большую панель, используя большую часть диалога и перейдите на вкладку "Зависимости". Мой предпочтительный способ работы на этом этапе (особенно когда проект большой и сложный) заключается в том, чтобы прокладывать себе путь по перечисленным модулям, добавляя библиотеки и зависимости модулей для каждого модуля, когда я иду. На этот раз для каждого модуля используйте знак "зеленый плюс" справа, чтобы добавить каждую библиотеку или модуль, который вам нужен, и они должны быть предложены вам из тех, которые были добавлены на последнем этапе.

введите описание изображения здесь

Внимание Существует два важных шага, которые вы должны соблюдать при завершении процесса:

1. Убедитесь, что каждая зависимая, добавленная для каждого модуля, имеет область "Компилировать" на вкладке зависимостей.

2.. Когда вы закончите, нажмите кнопку Применить в нижней части диалогового окна "Структуры проектов", прежде чем нажимать "ОК". Кажется, он должен быть автоматическим, как и многое другое в IntelliJ, но я не думаю, что это так. Я потерял изменения, внесенные в структуру проекта, не нажав "Применить" перед выходом из диалогового окна.

Ответ 4

У меня была эта проблема, и, насколько мне известно, я знаю два решения, чтобы решить эту проблему:

  1. нажмите "построить" в верхней части окна IntellIj, затем "Создать проект"

и/или

  1. с правой стороны, вы нажимаете "Maeven Projects" (вертикально написано маленьким), а затем "очистить"

Ответ 5

Просто у меня была эта проблема,

Что помогло мне:

Я нашел папку .ideaLibSources, выбрав "Копировать путь" в контекстном меню после щелчка правой кнопкой мыши по файлу JAR (Вы можете найти ссылку на файл JAR в верхней области идеи, когда файл открыт в редакторе и находится в фокусе ) затем просто удалил unwonted-sources.jar из этой папки. перезаписать.

кстати недействительным/перезапуск не помог

Ответ 6

Я просто скопировал содержимое файла и удалил его. Позже я просто создал новый файл с тем же именем, что и старый, и вставил в него код. Это сработало для меня.

Для меня просто восстановился файл.

Ответ 7

В моем случае помогли следующие шаги:

  1. удалить библиотеку из локального хранилища
  2. перестроить проект

Ответ 8

Это вызвано старой скомпилированной версией пакета, который опирается на .m2/repository.

 All you need to do is
  -> Find the package in m2 folder and delete it
  -> Rebuild the required package or re-download from the repository
  -> Reimport all packages in the project

Ответ 9

Проверьте наличие нескольких источников, подключенных к lib

Это может быть связано с несколькими источниками, определенными в библиотеках. Проверьте и удалите несколько источников в File > Project Structure > Libraries > lib with issue > Sources

например Файл> Структура проекта> Библиотеки> Maven: com.rohit: пример: 1.0.0> Источники → удалить несколько источников