Faktor-IPS Archetype

Motivation

Maven ist ein weitverbreitetes Tool für das Bauen sowie das Dependency-Management von Projekten. Faktor-IPS Projekte sollen daher auch direkt als Maven-Projekte erstellt werden können. Dies ist mittels eines Maven-Archetype für Faktor-IPS möglich.

Voraussetzungen zur Verwendung

  • Installation der neuesten Version von Faktor-IPS (mindestens Version 21.6)

  • Installation von Maven (mindestens Version 3.5.0)

Ab Eclipse 2022-09 kann der Archetype direkt in Eclipse genutzt werden.

Durchführung

Generierung des Faktor-IPS Projekts

Ausführen in der Kommandozeile:
mvn archetype:generate -DarchetypeGroupId=org.faktorips -DarchetypeArtifactId=faktorips-maven-archetype -DarchetypeVersion=<version>

Anschließend werden benötigte Parameter abgefragt. Die meisten Parameter sind hierbei vorbelegt, können aber bei Bedarf überschrieben werden. Zuletzt wird automatisch ein Postprozessor ausgeführt, der Anpassungen durchführt und ggf. weitere Parameter abfragt. Siehe auch Verwendete Parameter.

Aus Eclipse heraus:

Um ein Faktor-IPS Projekt zu erstellen klickt man auf DateiNeuProjekt…​Maven Projekt. Im ersten Dialog des Wizards darauf achten das nicht Erstellen Sie ein einfaches Projekt angehakt ist. Auf der nächsten Seite des Wizards kann nach "faktorips" gefiltert werden, und die gewünschte Archetype-Version und somit die gewünschte FaktorIPS-Version ausgewählt werden:

Archetype Auswahl

Auf der nächsten Seite können dann die Basis-Parameter für das neu anzulegende Projekt eingegeben werden:

Archetype Parameter

Schließlich werden noch ein paar abgeleitete Parameter in der Eclipse-Console abgefragt und mit der Tastatur bestätigt:

Archetype Konsole

Bauen des Faktor-IPS Projekts

Navigieren in das generierte Projekt und dann Maven in der Kommandozeile ausführen:

mvn clean install

Verwendete Parameter

… für das Generieren des Projekts

  • groupId: die Group-ID des Maven-Projekts

  • artifactId: die Artifact-ID des Maven-Projekts

  • version: die Version des Maven-Projekts

  • package: die grundlegende Package Struktur, z.B. org.faktorips.example

  • JavaVersion: die Java-Version, z.B. 1.8 or 11

  • IPS-Language: das verwendete Sprachpaket (en or de)

  • IPS-NamingConvention: die verwendete Namenskonvention (FIPS, VAA or PM)

  • IPS-IsModelProject: true, wenn es ein Model-Projekt ist, sonst false

  • IPS-IsProductDefinitionProject: true, wenn es ein ProduKt-Definition-Projekt ist, sonst false

  • IPS-IsPersistentProject: true, wenn wenn Persistenz unterstützt werden soll, sonst false

  • IPS-TocXML: der Dateiname des Repository-TOC ohne Dateiendung, z.B. faktorips-repository-toc

  • IPS-ValidationMessageBundle: die Bezeichnung des zu verwendenden Validation-Message-Bundles, z.B. validation-message

  • IPS-SourceFolder: der Source-Folder, z.B. modell

  • IPS-IsGroovySupport: true, wenn Faktor-IPS Groovy unterstützt werden soll, sonst false

  • runtime-ID-prefix: die verwendete Laufzeit-ID-Prefix, z.B. hausrat. (wichtig: Punkt am Ende nicht vergessen)

  • IPS-ConfigureIpsBuild: true, wenn das faktorips-maven-plugin zum Bauen des Projekts konfiguriert werden soll, sonst false

  • IPS-IsJaxbSupport: true, wenn Faktor-IPS den XML-Support entweder mit (1) ClassicJXB oder (2) JakartaXmlBinding generieren soll, sonst false

… für die automatische Nachbearbeitung

  • (optional) Persistenz API: die zu verwendende Technologie zur Umsetzung der Persistenz, z.B. EclipseLink 2.5, Generic JPA 2.0 oder Generic JPA 2.1 oder Jakarta Persistence 2.2 (nur, wenn IPS-IsPersistentProject=true)