Компилятор Maven не может разрешить импорт

Dec 07 2020

Я пытаюсь создать несколько продуктов eclipse с maven и tycho. В настоящее время я застрял в проблеме, когда Bundle A зависит от класса из Bundle B. Bundle B имеет структуру пакета, подобную:

a.b.c.d.e.f.Class

Когда я сейчас пытаюсь создать ИИ, получаю ошибку компиляции, которая выглядит примерно так:

 import a.b.c.d.e.f.MyClass;
[ERROR] ^^^^^^^^^
[ERROR] The import a.b.c.d.e cannot be resolved

Если вы присмотритесь, вы увидите, что Maven, по-видимому, пытается разрешить неправильный пакет, поскольку он только заявляет, что не может разрешить, a.b.c.d.eпока класс, который должен быть импортирован, фактически находится в a.b.c.d.e.f.

Кроме того, в a.b.c.d.e. Я пробовал как включить a.b.c.d.eкак экспортированный пакет в манифест, так и удалить его из этого списка, но ни то, ни другое не помогло.

В чем может быть проблема?

Ответы

1 Radioo Dec 07 2020 at 20:08

После запуска maven с очень подробным ведением журнала я дважды проверил аргументы, которые maven (tycho) передавал компилятору JDT при компиляции Bundle A. Я заметил, что он передавал только JAR, который я добавил в путь к классам Bundle B.

Затем я заметил, что в МАНИФЕСТЕ Bundle B, где я указал Bundle-Classpath, у меня был только JAR в пути к классам. Я думал , что ранее классы расслоения сам будет добавлены по - умолчанию, но после добавления ,.к Bundle-Classpathсвойству сборка снова работала.

Если вы хотите узнать об этом больше, ЭТО СТАТЬЯ указал мне правильное направление.