Управление зависимостями проекта подключаемого модуля Eclipse с помощью Maven - PullRequest
4 голосов
/ 27 мая 2020

Я пытаюсь использовать Maven для управления зависимостями моего проекта надстройки. Зависимости правильно указаны в POM. xml. Несмотря на это, я получаю исключение:

java .lang.NoClassDefFoundError

Это правильный способ решения зависимостей для проекта подключаемого модуля Eclipse?

1 Ответ

1 голос
/ 27 мая 2020

Подключаемые модули должны использовать операторы Require-Bundle или Import-Package в файле MANIFEST.MF подключаемого модуля, чтобы указать их зависимости.

Плагины могут зависеть только от других плагинов.

Если вы хотите использовать jar-файл, который не является подключаемым модулем, он должен быть включен в подключаемый модуль и включен в Bundle-Classpath в MANIFEST.MF. Вам также необходимо будет обновить файл build.properties, чтобы включить файлы jar-файлов в сборку надстройки.

Пример извлечения MANIFEST.MF, который включает 3 jar-файла в надстройке:

Require-Bundle: greg.music.core;bundle-version="1.0.0",
 greg.music.resources;bundle-version="1.0.0",
 org.eclipse.core.runtime,
 javazoom.jlgui.basicplayer,
 org.eclipse.e4.core.services;bundle-version="2.0.100"
Bundle-ClassPath: .,
 lib/jogg-0.0.7.jar,
 lib/jorbis-0.0.15.jar,
 lib/vorbisspi1.0.2.jar
Import-Package: javax.annotation;version="1.0.0",
 javax.inject;version="1.0.0",
 org.eclipse.e4.core.di.annotations

Соответствие build.properties

source.. = src/
output.. = bin/
bin.includes = META-INF/,\
               .,\
               plugin.properties,\
               plugin.xml,\
               lib/jogg-0.0.7.jar,\
               lib/jorbis-0.0.15.jar,\
               lib/vorbisspi1.0.2.jar
...