Ich entwickle meine Anwendung als eine Reihe von OSGi-Bundles mit Maven 2. Einige gängige Funktionen wie Logging, Webserver usw. werden von anderen OSGi-Bundles verwendet, zum Beispiel verwende ich die OSGi-Version von Jetty.Wie bündle ich mehrere Module und 3rd-Party-JARs in einem ZIP mit Maven2?
Ich möchte meine Anwendung mit allen Drittanbieter-Bundles und einem OSGi-Container enthalten. Ich wählte Apache Felix als meinen Standardbehälter.
Ich bin ziemlich neu zu Maven und ich weiß nicht, wie man die POM-Datei schreibt, die dies tut und konnte kein ähnliches Beispiel in der Maven book finden. Der Kernpunkt scheint zu sein, dass ein Projekt mit mehreren Modulen kein eigenes Artefakt erzeugt.
Es erstellt und verpackt meine Bundles in OSGI-kompatiblen JAR-Dateien, wie es sollte (unter Verwendung der maven-bundle-plugin). Jetzt möchte ich es den anderen Sachen auch einpacken (was nicht gebaut oder etwas zu werden braucht, gerade eingezogen und in das Paket legen) und eine ZIP-Datei wie folgt erzeugen:
+-Archive Root
|
+- /bundles
|
+- my.bundle1.jar
+- my.bundle2.jar
+- 3rd.party.bundle1.jar
+- 3rd.party.bundle2.jar
+- /conf
|
+- ... some config files ...
+- felix.jar
Auf diese Weise kann mein Benutzer die ZIP-Datei herunterladen, entpacken sie es in ein Verzeichnis, sagen sie „MyApp“, und dann
# > java -jar /path/to/MyApp/felix.jar
einige Noten auf Details gehen, wenn sie Materie:
- Jedes Bündel ist ein Kind eines gemeinsamen übergeordneten Projekts, das keinen eigenen Quellcode hat und eine
packaging
auf "pom" eingestellt, wie aus den Beispielen des Buches entnommen. - Ich habe mich gegen das Einbetten von Felix in ein zentrales Bundle entschieden ("gehosteter Rahmen" -Ansatz)
- Ich könnte einen alternativen Versand anbieten, der nur meine eigenen Bündel für Kunden einschließt, die OSGi Behälter laufen lassen. Dies könnte ein Ausgangspunkt sein?
Der Link scheint unterbrochen zu sein –