Как мне прикрепить исходники для комплекта библиотек в OSGi / Equinox / Eclipse? - PullRequest
4 голосов
/ 15 марта 2012

I создал библиотечный комплект для commons-lang3, и это хорошо работает. Я могу собрать пакет, добавить зависимость, а затем использовать все классы этого пакета в моих плагинах.

Но я не вижу источников в отладчике.

Как проще всего создать исходный комплект для этого комплекта библиотек?

PS: библиотечный комплект - это плагин, который содержит оригинальный файл JAR; Eclipse больше не компилирует исходный код, он просто добавляет существующий JAR в путь к классам.

Ответы [ 2 ]

5 голосов
/ 16 марта 2012

Вы можете включить источники по пути OSGI-OPT/src пакета; тогда их увидит отладчик Eclipse (не уверен насчет других IDE, поскольку я использую только Eclipse). Я нахожу это намного проще, чем создание отдельного исходного пакета, потому что одним артефактом легче управлять, чем двумя, и если вы строите с Bnd или Bndtools , мы создаем такие пакеты как по умолчанию.

В тех редких случаях, когда вам необходимо выполнить развертывание в среде с ограниченными ресурсами, вы можете просто удалить каталог OSGI-OPT из пакета; это имя является соглашением для необязательных данных, которые можно удалить, не влияя на работу пакета.

Между прочим, наш подход основан на исполняемых файлах UNIX, которые часто содержат дополнительные символы отладки, и команде strip , которая удаляет их, чтобы создать меньший исполняемый файл при желании.

1 голос
/ 15 марта 2012

Если вы добавляете исходные файлы в свой собственный jar, то создайте файл META-INF / MANIFEST.MF с записью 'Eclipse-SourceBundle', которая задает символическое имя вашего комплекта библиотеки.Ниже приведен пример, который у меня есть из баночки Феликса:

Manifest-Version: 1.0
Eclipse-SourceBundle: org.apache.felix.main;version="4.0.1";roots:="."
Bundle-Version: 4.0.1
Bundle-Name: Apache Felix Framework
Bundle-ManifestVersion: 2
Bundle-Vendor: The Apache Software Foundation
Bundle-SymbolicName: org.apache.felix.main.source

Чтобы иметь возможность просматривать источник в Eclipse, убедитесь, что этот файл находится в вашей целевой среде PDE (Windows-> Preferences-> Plugin Development->TargetPlatform).Если вы используете Eclipse в качестве целевой платформы, просто перетащите его в папку с плагинами eclipse.

...