2013-07-31 2 views
0

У меня есть опыт Java-кодирования, но не столько знание всей разнообразной Java-экосистемы. Теперь мне поручено разработать небольшой плагин Karaf для огромной системы. Эта система использует бесчисленные плюсы Java: Camel, Karaf, Maven и еще много чего. У меня есть пример кода, который мне нужно будет внести в небольшие изменения и перестроить.Самый простой способ построить плагин Karaf

Пример проекта Maven (по крайней мере, есть pom.xml), и в конце он должен быть плагином Karaf. Каков самый простой способ сделать изменения в примере и перестроить плагин? Я никогда не использовал ни одно из вышеперечисленных ранее, и изменения невелики, поэтому установка и настройка многого материала кажется немного излишним.

С чего начать? :)

ответ

0

Я согласен с тек-идиот, лучше всего тратит некоторое время с karaf-Maven-плагин, но вы также можете установить пакет вверх вручную, в чтобы понять, что его можно легко достичь с помощью плагина maven (особенно, если у вас много зависимостей).

Основной OSGI расслоение (то, что вы смотрите, как «плагин»), не что иное, как JAR файл с помощью специального текстового файла в там, MANIFEST.MF файл.

MANIFEST.MF описывает пучок, его название, описание, как вы хотите, чтобы активировать его, и то, что расслоение требует для запуска (его зависимости или импорта), а также то, что он может предложить другие пакеты (его экспорт).

Это образец файла манифеста взяты из wikipedia OSGI записи:

Bundle-Name: Hello World 
Bundle-SymbolicName: org.wikipedia.helloworld 
Bundle-Description: A Hello World bundle 
Bundle-ManifestVersion: 2 
Bundle-Version: 1.0.0 
Bundle-Activator: org.wikipedia.Activator 
Export-Package: org.wikipedia.helloworld;version="1.0.0" 
Import-Package: org.osgi.framework;version="1.3.0" 

MANIFEST.MF файл обычно упакованы в META-INF/MANIFEST.MF папке баночке, так:

  • Вы можете напишите этот файл вручную и добавьте его вручную в свою созданную банку.
  • Вероятно, из последних трех элементов манифеста образца, вам нужен только Import-Package раздел (не Bundle-Activator и не Export-Package)
  • Вы должны объявить в Import-Packageкаждый необходим внешний импорт пакета для вашего приложения и его версия. Имейте в виду, что внешние зависимости, которые вы используете в своем приложении, должны быть доступны во время выполнения OSGI для запуска вашего пакета.
+0

Спасибо за отличный ответ! Я пришел к выводу, что это основной JAR. Я буду смотреть в Maven когда-нибудь в будущем, но пока этого достаточно (небольшие изменения). – Machman

3

Maven уже предоставляет плагин для karaf, единственное, что вам нужно сделать, это прикрепить его.

Для получения дополнительной информации вы можете увидеть приведенную ниже ссылку.

http://karaf.apache.org/manual/latest/developers-guide/karaf-maven-plugin.html

Благодаря

+1

Как я уже говорил, я никогда не использовал Maven или Karaf, в основном это .NET и сеть. Эта страница ничего не говорит мне, довольно крутая кривая обучения. Отсюда с чего начать в первом посте. Скорее всего, это одноразовое изменение и незначительное, поэтому быстрое и грязное решение было бы более чем прекрасным. – Machman

+1

Как предложение сначала получить некоторые основы maven отсюда - http://maven.apache.org/what-is-maven.html, а затем я думаю, что выше URL будет иметь гораздо больше смысла. - Спасибо – saurav

+1

Начните сначала изучать явную Java, затем перейдите на maven, и после того, как вы освоили свои основы, зайдите в OSGi и узнайте, как создавать модульные приложения. –