2.2.1. Das parent Modul

Im parent Verzeichnis findet sich das parent pom.xml.

  1  <project 
  2      xmlns="http://maven.apache.org/POM/4.0.0" 
  3      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  4      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
  5      http://maven.apache.org/xsd/maven-4.0.0.xsd">
  6      
  7      <modelVersion>4.0.0</modelVersion>
  8      
  9      <groupId>org.jowidgets.helloworld</groupId>
 10      <artifactId>org.jowidgets.helloworld.parent</artifactId>
 11      <version>0.0.1-SNAPSHOT</version>
 12      <packaging>pom</packaging>
 13  
 14      <properties>
 15          <!-- jowidgets needs java 1.6 or higher -->
 16          <java.version>1.6</java.version>
 17          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 18          <jowidgets.version>0.40.0</jowidgets.version>
 19      </properties>
 20      
 21      <repositories>
 22          <!-- The jowidgets maven repository -->
 23          <repository>
 24              <id>jowidgets</id>
 25              <url>http://jowidgets.org/maven2/</url>
 26          </repository>
 27      </repositories>
 28      
 29      <modules>
 30          <!-- Hold the ui technology independend hello world code -->
 31          <module>../org.jowidgets.helloworld.common</module>
 32          
 33          <!-- Holds a starter that uses Java Swing -->
 34          <module>../org.jowidgets.helloworld.starter.swing</module>
 35          
 36          <!-- Holds a starter that uses Eclipse SWT (win32) -->
 37          <module>../org.jowidgets.helloworld.starter.swt</module>
 38          
 39          <!-- This module creates a war that uses Eclipse RWT -->
 40          <module>../org.jowidgets.helloworld.starter.rwt</module>
 41      </modules>
 42      
 43      ...
 44  
 45  </project>

Die Hello World Applikation besteht aus vier Untermodulen.

Das Modul org.jowidgets.helloworld.common enthält den SPI unabhängigen Code, die drei anderen Module beinhalten die Starter für die jeweilige SPI Implementierung sowie die zugehörigen Maven Abhängigkeiten.

In einem realen Projekt hat man normalerweise nicht Starter für alle möglichen SPI Implementierungen. Dennoch ist es eine gute Idee, den SPI unabhängigen Code in ein separates Modul zu packen, um ihn in anderen Projekten, welche eventuell eine andere UI Technologie voraussetzen, besser wiederverwenden zu können.


Siehe auch PDF Version dieses Dokuments, Jowidgets API Spezifikation