Maven 2 - Build Lifecycle #3

Gepostet von am Nov 22, 2008 in Java | Keine Kommentare

Nach dem wir uns im ers­ten Teil mit der The­roie ver­traut gemacht haben und im zwei­ten Teil erste Schritte in der Pra­xis gemacht haben geht es nun im drit­ten Teil um den Kern einer pom.xml-Kon­fi­gu­ra­tion. Hier­bei erkläre ich die nöti­gen Schritte, die dafür nötig sind, um einen Build Lifecy­cle einer RCP-Anwendung aufzubauen.

Zu erst sollte man sich in Eclipse eine RCP-Anwendung1 gene­rien las­sen oder selbst eins erstel­len. Da wir spä­ter auch die Product-Konfiguration brau­chen, wäre es ange­bracht, sich diese auch gleich bauen zu las­sen und nötige Ein­stel­lun­gen zu tref­fen. Ich habe soweit alles beim Stan­dard belas­sen und die Product-Datei „com.company.project.product” genannt. Wenn man die nöti­gen Kon­fi­gu­ra­tio­nen für das Pro­dukt getrof­fen hat lässt sich diese bereits in Eclipse über „Over­view -> Launch an Eclipse app­li­ca­tion” aus­füh­ren.

Ich möchte an die­ser Stelle nicht tie­fer in der RCP-Entwicklung ein­ge­hen da dies ein Thema für sich ist. Wer aller­dings damit nicht so zurecht kommt, sollte sich noch etwas in die RCP-Entwicklung2 einlesen.

Nun erstel­len wir uns eine pom.xml mit fol­gen­dem Inhalt:

<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.company.project</groupId>
  <artifactId>com.company.project</artifactId>
  <packaging>zip</packaging>
  <name>Project Name</name></code><code>
  <version>1.0-SNAPSHOT</version>
  ...
</project>

Unsere Anwen­dung heißt hier: com.company.project. Das Haupt-Plugin ana­log genauso: com.company.project. Es gilt nun den Inhalt ab Zeile 8 zu fül­len. Da wir einen Build­pro­zess für eine RCP-Anwendung erstel­len wol­len schauen wir uns zu erst auf der Seite http://mojo.codehaus.org/pde-maven-plugin/index.html um. Dies kommt dem am nächs­ten was wir machen wol­len. Unter Usage haben wir eine wun­der­bare Beschrei­bung wie der Kon­strukt aus­zu­se­hen hat:

<project>
  ...
  <packaging>zip</packaging>
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>pde-maven-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
          <buildProperties>
          <!-- Additional PDE ant properies goes here -->
          ...
          </buildProperties>
        </configuration>
        <!-- Also bind to mvn clean -->
        <executions>
          <execution>
            <id>clean-pde</id>
            <phase>clean</phase>
            <goals>
              <goal>clean</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  ...
</project>

Ab nun an wird es etwas kniff­lig. Man sollte die PDE-Version expli­zit ange­ben. Aktu­ell ist die Ver­sion: „1.0-SNAPSHOT”. Dies muss im bes­ten fall unter exten­si­ons als ver­sion - Tag hin­zu­ge­fügt wer­den. Nicht benö­tigte Inhalte, spe­zi­ell die Kom­men­tare haben in solch einer Kon­fi­gu­ra­tion natür­lich nichts ver­lo­ren. Also eben­falls raus damit. Sind diese Dinge abge­ar­bei­tet kann sich diese pom-Konfiguration schon sehen las­sen. Damit ist zumin­dest der Grund­stein gelegt. Im nächs­ten Teil der Sto­ry­line wer­den wir uns mit dem Product-Build beschäf­ti­gen und unsere erstellte Mail-Application auto­ma­tisch erstel­len lassen.

Wei­ter­füh­rend ist zu sagen, das mit dem PDE-Maven-Plugin sich nicht nur Pro­duct, son­dern auch Plugins, Fea­tures und auch Update­site auto­ma­tisch buil­den las­sen. Aller­dings ist jeder die­ser Berei­che ein Thema für sich und soll­ten trotz der ein­fa­chen Hand­ha­bung nicht unter­schätzt wer­den. Per­sön­lich schätze ich den Product-Build als schwie­rigs­ten ein.

  1. Optio­nal das HelloWorld-Mail RCP []
  2. http://wiki.eclipse.org/index.php/Rich_Client_Platform []

Einen Kommentar schreiben