Maven Migration

Aus SKM Wiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

[bearbeiten] Maven Migration

Sie haben von Maven und dessen Vorteilen gehört bzw. gelesen und möchten davon profitieren. Sie haben bisher mit Ant gearbeitet und möchten nun wissen, wie Sie auf Maven umsteigen können?

Fangen wir zuerst mit einem Beispiel an, dass noch Ant nutzt. Wir werden das vollständige Ant Script Stück für Stück betrachten und dann nach Maven umsetzen. Aber fangen wir zuerst einmal mit den Unterschieden zwischen Ant und Maven an.

[bearbeiten] Konvention vor Konfiguration

Die Überschrift sagt eine ganze Menge aus. Dabei kommt zum Ausdruck, dass in Maven die Konvention, sprich die Festlegungen von bestimmten Dingen (z.B. Verzeichnissen) vor der Konfiguration kommt. Die Konsequenz daraus ist einfach. Bei einer Konvention, muss man nicht alles und jedes konfigurieren (wie z.B. in Ant). Hier geht man einfach davon aus, das etwas so ist, wie es sein soll (Konvention). Das bedeutet aber auch umgekehrt, dass man nicht mehr so viele Freiheiten wie z.B. in Ant hat, wie und wo man seine Verzeichnisse legen kann. In Ant wird das einfach entsprechend Konfiguriert und in Maven wird einfach Vorausgesetzt, dass das Projekt entsprechend den Konventionen angelegt ist. Wenn es dass dann nicht ist, ist sehr viel Konfigurationarbeit angesagt und das sollte man unbedingt vermeiden.

[bearbeiten] Verzeichnisstruktur

Ein der wichtigstigsten Konventionen, die man in Maven lernen muss ist die, dass Verzeichnisse ab jetzt nicht mehr einfach festgelegt werden können, wie bisher, sondern sich einer gewissen Konvention unter ordnen müssen (siehe auch).

projekt
  +-- src
       +-- main
       !    +-- java
       !    +-- resources
       +-- test
            +-- java
            +-- resources

Wenn man es sich zu Anfang einfach machen möchte, dann einfach das Folgende eingeben:

mvn archetype:create -DgroupId=com.soebes.maven -DartifactId=testmvn

Damit wird ein Projekt im Unterverzeichnis testmvn angelegt und die Klassen etc. werden im Package com.soebes.maven abgelegt.

[bearbeiten] Projekt Object Model

Die Konfiguration (Sorry, aber bisher ist mir kein besseres Wort eingefallen) von Maven geschieht in der pom.xml Datei.

Die Erste POM beschreibt hier lediglich den Compile Vorgang.

  <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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.soebes</groupId>
    <artifactId>test</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
  </project>

Um nun den Compile Vorgang selbst zu konfigurieren, wie hier z.B., dass mit Java 1.5 übersetzt werden soll, ist ein spezieller Bereich für die Konfiguration des Compilers vorgesehen:

<configuration>
    <source>1.5</source>
    <target>1.5</target>
</configuration>

Das wird nun in die bereits vorhandene PlugIn Konfiguration entsprechend plaziert und das Resultat sieht dann wie folgt aus:

  <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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.soebes</groupId>
    <artifactId>test</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
  </project>

[bearbeiten] Konzept

http://apollo.ucalgary.ca/tlcprojectswiki/index.php/Public/Project_Versioning_-_Best_Practices http://commons.ucalgary.ca/projects/maven-buildnumber-plugin/howto.html

JBoss und Maven http://wiki.jboss.org/wiki/Wiki.jsp?page=MavenBuildCreation

[bearbeiten] Projekte Seite

Mithilfe von Maven ist es recht einfach eine Projekt Seite, mit einer Übersicht über das Projekt zu erstellen.

Definition, Transfer auf einen Server per scp / Konfiguration zum Site-PlugIn...

Die SettingsXML settings.xml Datei.

Linke zum Thema Site Erzeugung:

[bearbeiten] Maven Links

PlugIns: http://felix.apache.org/site/maven-bundle-plugin-bnd.html#MavenBundlePlugin%2528BND%2529-howto

Ansichten
Persönliche Werkzeuge