Best Practice zum Laden von JARs von Drittanbietern in JBoss AS7 Standalone-Bereitstellung?
Was ist die beste Vorgehensweise für das laden von 3rd-party-JARs im JBoss-as-7.0.x standalone-deployment?
Habe ich versucht:
- bereitstellen jedes GLAS als eigenständiges Modul mit eigener module.xml desriptor;
- Bereitstellung des JARs im WEB-INF/lib-Verzeichnis der im KRIEG;
- und die foo.Ohr/lib Verzeichnis für alle Gläser gemeinsam von mehreren Kriegen.
Der offensichtliche Vorteil der Methode 1. oben ist der geringere Speicherbedarf bei der Bereitstellung über apprach 2. und Ansatz 3. Aber es scheint ziemlich mühsam zu pflegen, wie jede Abhängigkeit, dass ein GLAS hat, muss explizit definiert werden, die in der module.xml das scheint nicht sehr gut wartbar mit einer großen Anzahl von 3rd-party-Bibliotheken.
InformationsquelleAutor der Frage travega | 2011-11-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für kleinere Abhängigkeiten, die sind privat, um eine Bereitstellung, halten 'em in
WEB-INF/lib
in Ihrem.war
das ist, was es ist. Wenn Sie mit Maven-das dürfte so ziemlich automatisch und transparent für alles, was in der <kompilieren/> Bereich.Für große, komplexe Abhängigkeiten oder Abhängigkeiten, die werden geteilt zwischen mehreren apps, verwenden Sie die option (4):
Bereitstellen jedes der logischen Bibliothek (wie "OpenJPA" oder "Log4J") als Modul, einschließlich seiner api und impl Gläser und eine Abhängigkeit Gläser, die nicht bereits durch andere AS7-Module. Wenn es bereits ein Modul hinzufügen einer Abhängigkeit, sondern es ist vielmehr als das hinzufügen einer JAR zu Ihrem Modul. Wenn mehrere unterschiedliche Bibliotheken teilen sich einige gemeinsame Abhängigkeiten, teilen Sie in Module, und fügen Sie Sie als Modul-Abhängigkeiten in
module.xml
.Verwenden jboss-deployment-structure.xml haben Ihre Bereitstellung
.war
/.ear
/was auch immer deklarieren Sie eine Abhängigkeit auf das Modul, wenn es nicht automatisch erkannt und geladen.Ich finde, dass dies ein medium-to-low-Aufwand-Ansatz, die gut funktioniert. Es ist mehr Aufwand als dumping alles in
WEB-INF/lib
innerhalb der Bereitstellung, die der Java-EE-standard, was zu tun ist. Es beschleunigt redeploys und es spart viel deploy/Test der Zeit durch die Reduzierung Klasse/versions-Konflikte.Können Sie verwenden, Maven und maven-dependency-plugin zu produzieren Module mit dem transitiven Abhängigkeiten bereits enthalten, wenn Sie bereit sind zu tun, ein wenig Arbeit. Sie können sehen, ein Beispiel dafür, dass in einem Modul schrieb ich für EclipseLink integration in AS 7. Ich automatisieren die Erstellung von AS7-Module, Wann immer möglich.
InformationsquelleAutor der Antwort Craig Ringer