Maven Loader
This is version . It is not the current version, and thus it cannot be edited.
Back to current version   Restore this version

Der Maven Loader ist eine Erweiterung des Tomcat Application Server um einen Maven Class-Path Loader. Das Projekt ist sehr jung und wird in Zukunft noch mehr Features unterstützen. Zögern Sie nicht, Kontakt mit uns aufzunehmen.

Erklärung#

Bisher werden alle JARs in ein WAR-File nach /WEB-INF/lib eingepackt. Maven Loader löst dies nun anders und bietet volgende Vorteile:

Lösung#

Intersult Maven Loader ist eine Erweiterung des Tomcat Application Server, sodass dieser die Dependencies eines WAR-Files selbst laden kann. Maven Loader arbeitet dabei mit den settings.xml der Maven-Installation zusammen, sodass Proxy-Einträge oder Mirrors benutzt werden kännen. Dies ist gerade in Unternehmensanwendungen häufig der Fall.

Installation#

  1. Zunächst wird eine Tomcat-Instanz installiert. Das System ist bisher mit Tomcat 7 getestet, sollte auch mit Tomcat 6 lauffähig sein.
  2. Innerhalb der Tomcat-Installation (z.B. C:\Java\apache-tomcat-7.0.42\) wird das maven-loader.zip aus dem Anhang ausgepackt.
  3. Die Datei <tomcat>/conf/catalina.properties wird editiert. Der Eintrag common.loader wird zusätzlich um ${catalina.home}/maven-loader,${catalina.home}/maven-loader/*.jar erweitert.

Nun ist der Tomcat Maven-fähig!

Enthalten sind derzeit die Dateien:

aether-api-1.11.jar                     plexus-cipher-1.4.jar
aether-connector-wagon-1.13.1.jar       plexus-classworlds-2.4.jar
aether-impl-1.11.jar                    plexus-component-annotations-1.5.5.jar
aether-spi-1.13.1.jar                   plexus-interpolation-1.14.jar
aether-util-1.13.1.jar                  plexus-sec-dispatcher-1.3.jar
commons-cli-1.2.jar                     plexus-utils-2.0.6.jar
commons-logging-1.1.1.jar               sisu-guice-2.9.4-no_aop.jar
maven-aether-provider-3.0.3.jar         sisu-inject-bean-2.1.1.jar
maven-artifact-3.0.3.jar                sisu-inject-plexus-2.1.1.jar
maven-compat-3.0.3.jar                  tomcat-annotations-api-7.0.37.jar
maven-core-3.0.3.jar                    tomcat-api-7.0.37.jar
maven-embedder-3.0.3.jar                tomcat-catalina-7.0.37.jar
maven-loader-1.0-SNAPSHOT.jar           tomcat-juli-7.0.37.jar
maven-model-3.0.3.jar                   tomcat-servlet-api-7.0.37.jar
maven-model-builder-3.0.3.jar           tomcat-util-7.0.37.jar
maven-plugin-api-3.0.3.jar              wagon-http-lightweight-1.0-beta-7.jar
maven-repository-metadata-3.0.3.jar     wagon-http-shared-1.0-beta-7.jar
maven-settings-3.0.3.jar                wagon-provider-api-1.0-beta-7.jar
maven-settings-builder-3.0.3.jar        xercesMinimal-1.9.6.2.jar
nekohtml-1.9.6.2.jar

Maven-WAR-Files#

Maven-WAR-Files (auch Thin-WAR-Files genannt) werden wie wie folgt aufgebaut:
  1. Es ist kein <war-file>/WEB-INF/lib enthalten.
  2. In <war-file>/META-INF/context.xml befindet sich die Datei context.xml(info).
  3. In <war-file>/META-INF/pom.xml befindet sich die POM-Datei mit dem das WAR-File gebaut worden ist.

Beim Deployment wird dadurch der Maven Loader aktiviert, der dann die POM-Datei des Projekts öffnet und die Dependencies zum Class-Path hinzufügt. Falls die Dependencies nicht im lokalen Repository sind, werden diese über das Aether-System von Maven heruntergeladen und lokal installiert.

Hinweis: In der erweiterten Tomcat-Instanz können weiterhin full blown WAR-Files installiert werden.

Build-Prozess#

Hier wird in Kürze eine Maven-Build-Konfiguration stehen, mit der man automatisch die Thin-WARs bauen kann.

Settings#

Für den Betrieb von Maven Loader ist keine Installation von Maven erforderlich, da diese embedded mitgeliefert wird. Es gibt zwei Möglichkeiten, Maven-Settings zu übergeben:

Repository#

Durch die Settings kann das Repository eingestellt werden, in dem die heruntergeladenen Artifakte abgelegt werden. Es kann auch ein eigenes Repository für die Tomcat-Installation verwendet werden:
<settings>
    ...
    <localRepository>${CATALINA_HOME}/repository</localRepository>
    ...
</settings>