Как избежать ошибки "Ошибка пакета" в IntelliJ IDEA?
Я создал новый проект Maven с использованием архетипа CQ5 и импортировал его в IntelliJ IDEA. IntelliJ помечает использование некоторых классов, таких как org.apache.felix.annotations.Component
, org.apache.felix.annotations.Reference
и т.д. IntellIJ, как ошибочное со следующим сообщением об ошибке:
The package is not exported by the bundle dependencies
![IntelliJ OSGi Error Message]()
- Это допустимая ошибка?
- Как я могу это исправить (в отличие от отключения проверки)?
Ответы
Ответ 1
Я использую версию 12.1.4
Ответ 2
Вы экспортируете эти пакеты как часть определения пакета? В проекте maven у вас должен быть плагин maven bundle с <Export-Package>your.packages.here</Export-Package>
. Включены ли эти пакеты в это определение? Если нет, эти службы фактически не будут доступны в OSGi.
Ответ 3
В моем случае я случайно "настроил OSGi", когда мне только хотелось настроить Spring. То, как я столкнулся с этой проблемой, - это щелкнуть правой кнопкой по правильному краю на одной из затронутых строк, нажав "Настроить уровень выделения" → "Настроить проверки". Я думаю, что решение hippoLogic избавит вас от всех выражений на уровне синтаксического уровня, а также поможет выделить подсветку на уровне инспекции. Таким образом вы можете просто настроить последнюю, чтобы исключить OSGi.
Было бы еще лучше отключить OSGi (который я еще не исследовал), но здесь быстрое/грязное исправление, чтобы уменьшить шум выделения.
Ответ 4
Чтобы исправить эту проверку, если соответствующие зависимости присутствуют в файле pom, в вашем случае я думаю, что он должен присутствовать, поскольку вы просто импортировали их из eclipse, где он не выдавал никаких ошибок. Также проверьте, правильно ли указан параметр settings.xmml, и находится в правильном месте, а правильный - от intellij. ваш файл settings.xml присутствует в доме maven или может быть представлен как символическая ссылка в доме maven. Надеюсь, это поможет.
Ответ 5
Я работаю над клоном проекта из github, он не имеет отношения к OSGI, поэтому я думаю, что это ошибка идеи или я случайно включился. Тогда я предполагаю, что особенность OSGI в работе над идеями зависит от плагина.
Отключите плагин OSGI, сообщение об ошибке исчезнет.
в Mac OS:
команда + shift + a, плагин типа
поиск "OSGI", затем отключите этот плагин.