This page (revision-21) was last changed on 23-Jul-2015 20:20 by Dieter Käppel

This page was created on 20-Oct-2013 20:04 by Dieter Käppel

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
21 23-Jul-2015 20:20 7 KB Dieter Käppel to previous

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 1 changed one line
Der [Maven Loader] ist eine Erweiterung des [Tomcat] [Application Server] um einen [Maven] Class-Path Loader. Damit können sogenannte [Thin WAR] Files deployed werden, also ein WAR-File das nur die eigentlichen Dateien enthält, Abhängigkeiten werden beim Deployment durch [Maven] nachgeladen und zum Class-Path hinzugefügt. Ein [Thin WAR] kann durch das thin-war-maven-plugin erstellt werden.
Der [Maven Loader] ist eine Erweiterung des [Tomcat] [Application Server] um einen [Maven] Class-Path Loader. Damit können sogenannte [Thin WAR] Files deployed werden, also ein WAR-File das nur die eigentlichen Dateien enthält, Abhängigkeiten werden beim Deployment durch [Maven] nachgeladen und zum Class-Path hinzugefügt.
At line 3 added 3 lines
* Ein [Thin WAR] kann durch das thin-war-maven-plugin erstellt werden.
* [Maven Loader] ist kompatibel mit Tomcat 6 und Tomcat 7.
At line 20 changed one line
# Innerhalb der Tomcat-Installation (z.B. C:\Java\apache-tomcat-7.0.42\) wird das [maven.zip] aus dem Anhang ausgepackt.
# Innerhalb der Tomcat-Installation (z.B. C:\Java\apache-tomcat-7.0.42\) wird das Verzeichnis "maven" aus dem Anhang ausgepackt.
At line 25 removed 22 lines
Enthalten sind derzeit die Dateien:
{{{
aether-api-1.11.jar maven-settings-3.0.3.jar
aether-connector-wagon-1.13.1.jar maven-settings-builder-3.0.3.jar
aether-impl-1.11.jar nekohtml-1.9.6.2.jar
aether-spi-1.13.1.jar plexus-cipher-1.4.jar
aether-util-1.13.1.jar plexus-classworlds-2.4.jar
commons-cli-1.2.jar plexus-component-annotations-1.5.5.jar
commons-logging-1.1.1.jar plexus-interpolation-1.14.jar
maven-aether-provider-3.0.3.jar plexus-sec-dispatcher-1.3.jar
maven-artifact-3.0.3.jar plexus-utils-2.0.6.jar
maven-compat-3.0.3.jar sisu-guice-2.9.4-no_aop.jar
maven-core-3.0.3.jar sisu-inject-bean-2.1.1.jar
maven-embedder-3.0.3.jar sisu-inject-plexus-2.1.1.jar
maven-loader-1.0-SNAPSHOT.jar wagon-http-lightweight-1.0-beta-7.jar
maven-model-3.0.3.jar wagon-http-shared-1.0-beta-7.jar
maven-model-builder-3.0.3.jar wagon-provider-api-1.0-beta-7.jar
maven-plugin-api-3.0.3.jar xercesMinimal-1.9.6.2.jar
maven-repository-metadata-3.0.3.jar
}}}
At line 59 changed one line
Hier wird in Kürze eine Maven-Build-Konfiguration stehen, mit der man automatisch die Thin-WARs bauen kann.
[Thin WARs|Thin WAR] sind normale WAR-Files, die statt der JAR-Dependencies ein pom.xml enthalten. Solche WAR-Files können daher auch selbst aufgebaut werden. Praktischer ist jedoch Maven dafür zu verwenden:
At line 42 added 80 lines
{{{
<project>
...
<build>
...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<executions>
<execution>
<id>compile</id>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-jsp</id>
<phase>compile</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>src/main/webapp</directory>
<filtering>true</filtering>
</resource>
</resources>
<outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
<extensions>
<extension>
<groupId>com.intersult</groupId>
<artifactId>thin-war-maven-plugin</artifactId>
<version>1.0<version>
</extension>
</extensions>
</build>
...
</project>
}}}
__Erklärung:__ Das Compiler-Plugin und Resource-Plugin baut im Wesentlichen das Verzeichnis im Target auf, bevor das thin-war-maven-plugin das fertige WAR zusammensetzt. Das thin-war-maven-plugin ist dafür verantwortlich, die context.xml und die pom.xml an passender Stelle im WAR-File zu platzieren.
!!Lokal ausführen
Es handelt sich nach wie vor um eine normales Maven-WAR-Projekt und ist mit dem tomcat6- bzw. tomcat7-maven-plugin ausführbar:
{{{
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
<warSourceDirectory>${project.build.directory}/${project.build.finalName}</warSourceDirectory>
</configuration>
</plugin>
}}}
Das Ausführen erfolgt mit "mvn tomcat7:run" bzw. aus Eclipse heraus:
[Maven Loader/maven tomcat7 plugin.PNG]
At line 138 added 10 lines
Ab Version 1.1 sind folgende System-Properties verfügbar:
* __maven.loader.debug:__ Damit wird das Debug-Logging von Maven aktiviert, um Probleme beim Dependency-Resolving leichter erkennen zu können.
* __maven.loader.scopes:__ Hier kann eine Komma-seperierte Liste von Maven-Scopes übergeben werden, die die Artifakte festlegen, die in den Classloader übernommen werden. Default-Wert ist "compile,runtime".
!!!Downloads
Der Maven-Loader kann aus dem Intersult Repository heruntergeladen werden:
* [https://www.intersult.com/nexus/content/groups/public/com/intersult/maven-loader/1.1-SNAPSHOT/]