20.09.21

Faktor-IPS Build-Evolution: von Antskripten zu Maven-Plugins

Faktor-IPS-Projekte baut man mit Eclipse, checkt alles ein und lässt im Build nur die Java-Dateien kompilieren. Warum eigentlich?

Weil der Build ein vollständiges Eclipse braucht, das „headless“ aufgerufen werden muss und dann Ant-Skripte ausführt – sehr kompliziert. Dennoch haben einige Kunden dies zumindest für ihre Produktprojekte umgesetzt (inklusive einem Buildjob, der auf dem Buildserver das passende Eclipse für den Faktor-IPS-Buildjob installiert), um die Sicherheit zu haben, dass die eingecheckten Produktdaten vollständig valide sind. Auch wir selbst nutzten das für Integrationtests von Faktor-IPS.

Aber in Zeiten von Maven und Continuous Builds klingt das sehr umständlich. Also haben wir uns (nachdem mehr und mehr Kunden eine solche Entwicklung in der Faktor-IPS-Community unterstützten) evaluiert, wie wir den Prozess vereinfachen können. Schon länger nutzen wir Eclipse Tycho zum Bau der Faktor-IPS-Plugins. Tycho bildet eine Brücke zwischen der Welt von Maven-Projekten und der von Eclipse-Plugins. Darauf aufbauend haben wir ein eigenes Maven-Plugin geschrieben, das nur die zum Build benötigten Plugins in einer Eclipse-Runtime lädt und ein Faktor-IPS-Projekt baut.

Das Einbinden in eigene Projekte ist denkbar einfach:

<plugin> <groupId>org.faktorips</groupId> <artifactId>faktorips-maven-plugin</artifactId> <version>21.6.3</version> <executions> <execution> <goals> <goal>faktorips-clean</goal> <goal>faktorips-build</goal> </goals> </execution> </executions> </plugin>

1

2

3

4

5

6

7

8

9

10

11

12

13

<plugin>

  <groupId>org.faktorips</groupId>

  <artifactId>faktorips-maven-plugin</artifactId>

  <version>21.6.3</version>

  <executions>

    <execution>

      <goals>

        <goal>faktorips-clean</goal>

        <goal>faktorips-build</goal>

      </goals>

    </execution>

  </executions>

</plugin>

Auch die Verwendung von weiteren Plugins, wie z.B. den Produktvarianten ist möglich und in der Dokumentation beschrieben. So können z.B. auch die erzeugten Dateien auf Änderungen im Vergleich zum in Git committeten Stand überprüft werden, um einen automatisierten Continuous-Integration-Test fehlschlagen zu lassen, wenn ein Projekt unvollständig gebaut eingecheckt wurde.

Damit können beispielsweise Faktor-IPs-Dateien in einem simplen XML-Editor bearbeitet werden, um dann mit dem Plugin den geänderten Java-Code zu erzeugen ohne Eclipse auch nur einmal zu starten. Um diesen Vorgang weiter zu vereinfachen wird Faktor-IPS 21.12 (dessen erster Meilenstein-Build unter update.faktorzehn.org/faktorips/v21_12 verfügbar ist) XML-Schema-Information in allen Dateien schreiben können.

 

Euer Faktor Zehn-Team

XS
SM
MD
LG
Share
Sprachauswahl Icon
We noticed your browser language is not German.
Do you want to switch to English?