Webprojekt mit Maven und mehren Modulen konfigurieren

mp123

Grünschnabel
Hallo,
ich arbeite grad das Maven-Tutorial von Sonatype durch (http://de.scribd.com/doc/17571160/Maven-Guide-German#outer_page_53)
und komme da bei der Definition von Modulen nicht weiter.
Wenn ein Webprojekt mehrere Module braucht, wohin sollen dann die Ordner für diese Module hin. Müssen sie dann außerhalb des Web-Inf liegen damit sie das Compiler-Plugin findet oder kann man das konfigurieren? In den Modulen sollen nur Klassen und Servlets drin sein.
Woher weiß Maven außerdem was es mit dem Parent-Projekt machen soll, wenn es packaging=pom hat. Es soll ja schon ein war werden

Danke schonmal
Michael
 
Hi, normalerweise hast Du

parent
...... modul1
...... modul2
...... modul3
etc

In Parent trägst Du die Koordinaten + Versionsnummern der Module unter DependencyManagement ein und referenzierst in den Modulen nur noch die Parent-Pom ohne dort selbst eine Versionsnummer zu vergeben

Beispiel :

Parent :

XML:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>net.mantucon.simpledemo</groupId>
	<artifactId>test-parent</artifactId>
	<version>1.0.0-SNAPSHOT</version>
	<packaging>pom</packaging>
	<modules>
		<module>webmodule</module>
		<module>businessmodule</module>
	</modules>

..
	<dependencyManagement>
		<dependency>
			<groupId>net.mantucon.simpledemo</groupId>
			<artifactId>webmodule</artifactId>
			<version>1.0.0-SNAPSHOT</version>
		</dependency>
...


und im Childmodule

XML:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<artifactId>test-parent</artifactId>
		<groupId>net.mantucon.simpledemo</groupId>
		<version>1.0.0-SNAPSHOT</version>
	</parent>
<!-- Hier nur die ID und den Type -->
	<artifactId>webmodule</artifactId>
	<packaging>war</packaging>
....


Damit das funktioniert, muss das Verzeichnis mit dem Webmodul in einem Ordner mit dem Modulnamen unterhalb des Parent liegen.

Durch den Type weiss Maven, was am Ende herauspurzeln soll und die Plugins erledigen den Rest.

Wenn Du nun das businessmodule im webmodule anziehen möchtest, kannst Du da einfach eine Dependency im Webmodule machen. Wenn das Pojos sind, war es das schon. Dieses Modul muss übrigens auch wieder unterhalb des Parent Module liegen

Dabei ist es wichtig, die Koordinaten der Module über dependencyManagement zu pflegen.

Grüße,
gore

Nachtrag :

Der Build findet dann auf Ebene des Parent Module statt und führt implizit zum Build der durch <modules> beschriebenen Untermodule.
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück