Как указать файлы классов с помощью bnd - PullRequest
0 голосов
/ 05 февраля 2019

Я уже успешно использовал автономный инструмент bnd для создания пакета OSGi из файла jar.

Теперь я хотел бы создать пакет, начинающийся с файлов .class.Просматривая некоторые официальные документы bnd, я не смог ничего найти для этого.Наверное, я ищу что-то вроде -classpath: output.jar, которое могло бы работать с файлами .class.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Существуют различные варианты: рабочая область bndtools (включает сборку Gradle), автономная Gradle, Maven и автономная bnd.Я настоятельно предпочитаю модель рабочего пространства Bndtools, поскольку она наиболее удобна для пользователя.Много поддержки, полная точность с Gradle без дополнительной работы, интерактивная отладка, удаленная отладка, упаковка и активное сообщество.Он основан на Eclipse.

Следующие ссылки должны помочь вам начать:

Обновление

Если вы просто хотите использовать командную строку bnd, вы многое упрощаете, но вам также нужно позаботиться о большем.И вы упускаете прекрасный мир bndtools: - (

Даже тогда у вас все еще есть выбор. Bnd можно использовать для создания настроек модели Workspace. В этом случае вы следуете правилам для bndtoolsУчебные пособия по рабочему пространству и т. Д. В этой модели вы можете использовать bnd build, compile и многие другие команды в каталогах рабочих пространств или проектов.

Если вы также хотите пропустить их, вы получите bnd, который просто генерируетJAR из файла свойств bnd. В этом случае вы должны указать все свои зависимости с помощью:

-classpath bin/,jar/a.jar, jar/b.jar

Затем вы можете использовать все инструкции Builder.

-includeresource
Private-Package
Export-Package
-exportcontents
...

Все заголовки пакета,и т. д. Большинство проверок и сборок должны работать аналогично примерам рабочего пространства Bndtools. Конечно, вы упускаете запуск и многие другие функции. Однако я слышал о ком-то, кто таким образом создает большую кодовую базу ...

Следующий URL показывает несколько примеров, как использовать это: https://bnd.bndtools.org/chapters/160-jars.html

0 голосов
/ 05 февраля 2019

Если я понял, что вы пытаетесь сделать, одним из вариантов может быть создание проекта maven и использование преимущества bnd-maven-plugin, как описано здесь .По сути, достаточно добавить следующий фрагмент в раздел build / plugins вашего pom:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
        </archive>
    </configuration>
</plugin>
<plugin>
    <groupId>biz.aQute.bnd</groupId>
    <artifactId>bnd-maven-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>bnd-process</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Полный пример подхода на основе maven можно найти на веб-сайте OSGi enRoute: https://enroute.osgi.org/Tutorial/

...