2016-11-26 2 views
0

Ich habe eine Reihe von Java-Klassen und eine Bundle-Aktivator-Klasse, die ich in Karaf bereitstellen muss.Was ist das empfohlene Verwendungsmuster für Karaf-Maven-Plugin?

Ich sehe, dass das Karat-Maven-Plugin Kar-Verpackung und Karaf-Montage hat.

Auch erzeugt es Features.xml

I Features.xml direkt erzeugen kann, und es erzeugt Linien mit Wrap: für einige meiner abhängigen Nicht-osgi Gläser.

Aber wenn ich Karat-Assembly ausführen, renne ich in das Problem der Assembly Ziel nicht zu erkennen, dass diese Gläser nicht osgi sind und am Ende mit Fehlern enden.

Was ist der empfohlene Weg, um eine benutzerdefinierte Karaf mit meiner Anwendung installiert zu bekommen?

Muss für die Karat-Assembly-Verpackung eine features.xml erstellt und im Voraus bereitgestellt werden? Oder soll es die Feature-Set-Generierung alleine machen? Wenn es das letztere ist, wie komme ich dann um das Problem herum, dass die Karat-Versammlung nicht-osgi-Gläser nicht erkennt?

Ich habe viel Zeit mit Google verbracht und bin ratlos.

Antwort

1

Dies ist meine Prozedur zum Erstellen einer benutzerdefinierten Karaf-Verteilung. Es ist vielleicht nicht "Best Practice", aber es funktioniert für mich. Vielleicht können Sie für Ihre Bedürfnisse anpassen.

  1. Nachdem ich meine Camel-Routen entwickelt und getestet habe, erstelle ich meine Feature-Datei basierend auf einer Feature-Vorlage in /src/main/feature/feature.xml. Das Karaf-Maven-Plugin wird das Feature im Feature-Ordner in/target generieren.
  2. Ich mache eine saubere Bereitstellung zu unserem Maven Artefakt.
  3. Ich habe ein benutzerdefiniertes Karaf Projekt eine saubere Installation für dieses Projekt. Das Projekt hat Abhängigkeiten zum ursprünglichen Projekt und ich füge alle Funktionen als Boot-Level-Funktion hinzu.
  4. Nach dem Build entzippe ich die Distribution und starte die Karaf App. Wenn alles in Ordnung ist, ist es bereit für den Versand.
+0

Ok, so generieren Sie Ihre feature.xml mit ProjektA und Pom- mit einer Funktion erzeugen Verpackung. Installieren Sie projectA in Repo und dann haben Sie eine zu projectA ... soweit ich denke, ich verstehe. Hoffe ich verknote mich nicht in mehr Knoten. Wenn Sie eine Beispiel-Zip zum Teilen haben - würde helfen. Thankyou – treefrog

+0

Ja genau, Sie können auf mein GitHub-Konto für ein einfaches Beispiel schauen .. http://github.com/SoucianceEqdamRashti/Integration, lassen Sie mich wissen, wenn Sie weitere Hilfe zu diesem Thema benötigen. Nahm mich eine Weile, um auch zur Arbeit zu kommen;) –

Verwandte Themen