Экспорт WAB из продукта eclipse / конфигурации запуска
В моей команде мы разрабатываем серверную часть Java веб-приложения. Мы используем OSGi.
До сих пор, на начальных этапах разработки и для упрощения, мы использовали Jetty в качестве контейнера сервлета, а для развертывания на тестовом сервере мы просто экспортировали наш продукт eclipse (все в комплекте) и запустили соответствующий файл.exe.
Мы используем OSGi для модульности и развязки. В этом конкретном сценарии мы не заинтересованы в динамической установке / удалении пакетов, поэтому продукт eclipse, объединяющий все вместе и развертывающий его за один раз, оказался довольно удобным.
Теперь мы хотим перейти от Jetty к GlassFish, а это значит, что нам нужно по-разному упаковывать наши пакеты. Из того, что я понял, WAB будет для нас правильным. Например, посмотрите это:
По сути, [WAB - это] веб-приложение с манифестом пакета OSGi. Таким образом, все веб-приложение может быть развернуто как единый OSGi-пакет на любой платформе с поддержкой WAB. Технически пакет может быть развернут как веб-приложение в контейнере сервлета. Но он получает доступ к BundleContext. Это позволяет веб-приложению взаимодействовать с другими пакетами или веб-приложениями, работающими в той же среде.
/questions/18623342/raznitsa-mezhdu-wab-i-war/18623352#18623352
В идеале мы хотели бы перейти к нашему файлу.product (или конфигурации запуска) и экспортировать оттуда WAB, поскольку у нас уже есть все необходимые комплекты с соответствующей настройкой (настройка автозапуска и уровни запуска). Тем не менее, это не представляется возможным - не так ли?
Обратите внимание, что взятие "корневого" комплекта и просто его упаковка и его зависимости не сработают, поскольку существуют дополнительные комплекты, которые не будут упакованы при выполнении этой процедуры. Например, в моей рабочей области у меня есть:
- com.example.root
- com.example.something
- com.example.something.impl.a
- com.example.something.impl.b
где:
com.example.something
это пакет API с двумя реализациями:com.example.something.impl.a
com.example.something.impl.b
com.example.root
зависит отcom.example.something
но не на какой-либо реализации этого- Мы на самом деле бежим
com.example.something.impl.b
, никогдаcom.example.something.impl.a
Если бы мы попытались просто упаковать root
и его зависимости мы бы пропустили impl.b
Итак, в основном: учитывая, что у нас уже есть продукт конфигурации запуска / затмения, который содержит точную настройку пакета, которую мы хотим для нашего серверного приложения, есть ли способ создать соответствующий WAB? Если прямого пути нет, и, учитывая, что мы не используем maven (что исключает maven-bundle-plugin), что будет лучше?