Я использую BndTools (http://bndtools.org/) для разработки приложения OSGI. Все работает нормально, но у меня есть некоторые вещи, которые я хотел бы изменить при экспорте моего приложения.
Я пытаюсь добиться двух вещей (я думаю, что они могут быть связаны):
1: Замените стандартную программу запуска BndTools (aQute.launcher
) пользовательской (или используйте ее в формате .JAR
)
Как избавиться от стандартной программы запуска BndTools (aQute.launcher) или изменить ее на пользовательскую?
Единственное, что я смог найти по этой теме, находится здесь: http://goo.gl/jYliih
Лаунчеры не встроены в bnd, реальная стратегия запуска параметризуется. Средство запуска связывается с файлом bnd или bndrun, помещая JAR в папку
-runpath
..JAR
должен иметь заголовок Launcher-Plugin, чтобы быть средством запуска. Если на-runpath
не найден лаунчер, то будет использоваться встроенныйbiz.aQute.launcher
.
Причина в том, что мне нужно, чтобы мое приложение принимало аргументы команды и не мешало запускам aQute (как и все аргументы -run). С другой стороны, я хотел бы избавиться от пакетного .bat/.sh
подхода к запуску приложения и использовать один файл .jar
для запуска приложения.
Это возможно?
2: настроить экспортированную файловую структуру
По умолчанию BndTools создает эту файловую структуру при экспорте приложения:
jar/
-> Это папка пакетов OSGI jar.
aQute/
-> Средство запуска BndTools по умолчанию (Launcher.class внутри)
META-INF/
-> Почему здесь папка META-INF? это не JAR
launcher.properties
-> Свойства лаунчера
start.sh
--> Запускает Launcher.class из этих командных файлов.
start.bat
/ В чем преимущество этого по сравнению с JAR?
В основном я хотел бы удалить файлы aQute
, META-INF
и start.*
и добавить папку bin
для двоичных файлов.
Это должно быть возможно достичь с помощью скрипта «Ant», «Maven» или «Gridle». Но я могу просто создать «Проект BndTools» или «Проект Gradle» без поддержки BndTools. Я установил «плагин BndTools Gradle», но нигде не смог найти полезную документацию по этой теме.
Надеюсь, кто-нибудь может помочь мне или указать мне правильное направление с этим. Привет.