Faktor-IPS-Projekte mit Maven-Archetypes erstellen

Motivation

Maven ist ein weitverbreitetes Tool für das Builden 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

  • Installation der neusten Version von Faktor-IPS (ab 21.6)
  • Installation von Maven (mindestens Version 3.5.0)

Durchführung

Generierung des Projekts:

Ausführen in der Kommandozeile:

mvn archetype:generate -DarchetypeGroupId=org.faktorips -DarchetypeArtifactId=org.faktorips.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.

Installation des Projekts:

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

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, z.B. en oder de
  • IPS-NamingConvention: die verwendete Namenskonvention, z.B. FIPSVAA oder 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-IsPersistenceSupport: true, 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
  • IPS-RuntimeIdPrefix: der verwendete Laufzeit-ID-Prefix, z.B. hausrat. (wichtig: den Punkt am Ende beachten)

… für die automatische Nachbearbeitung:

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