faktorips:faktorips-build

Full name:

org.faktorips:faktorips-maven-plugin:21.6.7-SNAPSHOT:faktorips-build

Description:

Builds the Faktor-IPS project.

By default, the latest Faktor-IPS is used with an Eclipse 2019-03 runtime, all installed from faktorzehn.org update sites.

To change from where the plugins are installed, see additionalRepositories, repositories, fipsRepository/fipsRepositoryVersion and eclipseRepository.

Additional plugins (like the Faktor-IPS Product Variant Plugin) can be configured with additionalPlugins.

Attributes:

  • Requires a Maven project to be executed.
  • Binds by default to the lifecycle phase: generate-sources.

Optional Parameters

Name Type Since Description
<additionalPlugins> List - Additional Eclipse-plugins which will be resolved transitively to make up the eclipse runtime.

Example:


<additionalPlugins>
 <dependency>
  <artifactId>org.faktorips.productvariant.core</artifactId>
  <type>eclipse-plugin</type>
 </dependency>
</additionalPlugins>

If JUnit is integrated as an Eclipse library, one of the following two dependencies must be added:

<additionalPlugins>
 <dependency>
  <artifactId>org.eclipse.jdt.junit</artifactId>
  <type>eclipse-plugin</type>
 </dependency>
</additionalPlugins>

or

<additionalPlugins>
 <dependency>
  <artifactId>org.eclipse.jdt.junit5.runtime</artifactId>
  <type>eclipse-plugin</type>
 </dependency>
</additionalPlugins>


<additionalRepositories> List - This parameter makes it possible to define additional repositories while using the default repositories (for which the repositories parameter must remain unused).

Example:


<additionalRepositories>
 <repository>
  <id>productvariants</id>
  <layout>p2</layout>
  <url>https://update.faktorzehn.org/faktorips/productvariants/21.6</url>
 </repository>
</additionalRepositories>


<antScriptPath> String - Path to an ant build file. If no path is specified, a new script is generated.
User property is: ant.script.
<antTarget> String - Name of the ant target to call. If no target name is specified, import is used.
Default value is: import.
User property is: ant.target.
<debug> boolean - Starts the build in debug mode and pauses it until a remote debugger has been connected. The default debug port is 8000; a different port can be configured with debugPort.
User property is: faktorips.debug.
<debugPort> int - The port on which the started Faktor-IPS build will listen for a remote debugger.
Default value is: 8000.
User property is: faktorips.debug.port.
<eclipseRepository> String - Path to the update site to install Eclipse.
Default value is: https://download.eclipse.org/eclipse/updates/4.11/.
User property is: repository.eclipse.
<executionEnvironment> String - Execution environment profile name used to resolve dependencies and run Faktor-IPS. Must be at least JavaSE-11.
Default value is: JavaSE-11.
<exportHtml> boolean - Whether to include the HTML export. It will be generated in target/html.

UI-libraries are required for the HTML export to work, so if you run this build on a CI server like Jenkins, make sure to install for example the Xvfb fake X server.

To package the generated HTML export in its own JAR, configure the maven-jar-plugin as follows:

<plugin>
  <artifactId>maven-jar-plugin</artifactId>
  <executions>
    <execution>
      <configuration>
        <classifier>html</classifier>
        <classesDirectory>${project.build.directory}/html</classesDirectory>
        <includes>**/*</includes>
      </configuration>
      <id>pack-html</id>
      <phase>package</phase>
      <goals>
        <goal>jar</goal>
      </goals>
    </execution>
  </executions>
</plugin>

Default value is: false.
<fipsRepository> String - Path to the update site to install Faktor-IPS. The default uses the official Faktor-IPS repository for the fipsRepositoryVersion.
Default value is: https://update.faktorzehn.org/faktorips/${faktorips.repository.version}/.
User property is: repository.fips.
<fipsRepositoryVersion> String - The version of the Faktor-IPS repository to be used. This parameter is used in the default fipsRepository property.
User property is: faktorips.repository.version.
<gitStatusPorcelain> GitStatusPorcelain - Runs a Git diff on the project to see if any files where changed. Can be configured to only print warnings or to fail the build for uncommitted changes.

<gitStatusPorcelain>
    <failBuild>false</failBuild>
    <verbosity>VERBOSE</verbosity>
</gitStatusPorcelain>


<importAsMavenProject> boolean - Whether to import the Faktor-IPS project as a Maven project. If set to true the m2e plugin will be used to import the pom.xml of the Faktor-IPS project.
Default value is: true.
<jdkDir> String - Path to the JDK the project should build against. If no path is specified, the parameter jdkId will be evaluated. If both parameters do not contain a value, the executionEnvironment will be used as default.
User property is: jdk.dir.
<jdkId> String - ID of the JDK the project should build against. The corresponding JDK must be configured in the Maven toolchains.xml This parameter is only evaluated if jdkDir is not specified. If this parameter does not contain a value either, the executionEnvironment will be used as default.
User property is: jdk.id.
<jvmArgs> List - List of JVM arguments set on the command line.

Example:


<jvmArgs>
  <args>-javaagent:lombok.jar</args>
</jvmArgs>


<localRepository> String - Path to a local repository.
User property is: maven.repo.local.
<repositories> List - p2 repositories which will be used to resolve dependencies. If the default values should be used this parameter must remain unused. Additional repositories can then be defined using the additionalRepositories parameter. The paths of the default repositories can be changed individually using the parameters fipsRepository and eclipseRepository or the properties repository.fips, repository.eclipse.

Example:


<repositories>
 <repository>
  <id>faktor-ips-21-6</id>
  <layout>p2</layout>
  <url>https://update.faktorzehn.org/faktorips/v21_6/</url>
 </repository>
 <repository>
  <id>eclipse-2020-12</id>
  <layout>p2</layout>
  <url>http://download.eclipse.org/eclipse/updates/4.18/</url>
 </repository>
</repositories>


<skip> boolean - Whether to skip mojo execution.
Default value is: false.
User property is: faktorips.skip.
<work> File - Work area. This includes:
  • <work>/configuration: The configuration area (-configuration)
  • <work>/data: The data ('workspace') area (-data)

Default value is: ${java.io.tmpdir}/${project.name}/eclipserun-work.

Parameter Details

<additionalPlugins>

Additional Eclipse-plugins which will be resolved transitively to make up the eclipse runtime.

Example:


<additionalPlugins>
 <dependency>
  <artifactId>org.faktorips.productvariant.core</artifactId>
  <type>eclipse-plugin</type>
 </dependency>
</additionalPlugins>

If JUnit is integrated as an Eclipse library, one of the following two dependencies must be added:

<additionalPlugins>
 <dependency>
  <artifactId>org.eclipse.jdt.junit</artifactId>
  <type>eclipse-plugin</type>
 </dependency>
</additionalPlugins>

or

<additionalPlugins>
 <dependency>
  <artifactId>org.eclipse.jdt.junit5.runtime</artifactId>
  <type>eclipse-plugin</type>
 </dependency>
</additionalPlugins>

  • Type: java.util.List
  • Required: No

<additionalRepositories>

This parameter makes it possible to define additional repositories while using the default repositories (for which the repositories parameter must remain unused).

Example:


<additionalRepositories>
 <repository>
  <id>productvariants</id>
  <layout>p2</layout>
  <url>https://update.faktorzehn.org/faktorips/productvariants/21.6</url>
 </repository>
</additionalRepositories>

  • Type: java.util.List
  • Required: No

<antScriptPath>

Path to an ant build file. If no path is specified, a new script is generated.
  • Type: java.lang.String
  • Required: No
  • User Property: ant.script

<antTarget>

Name of the ant target to call. If no target name is specified, import is used.
  • Type: java.lang.String
  • Required: No
  • User Property: ant.target
  • Default: import

<debug>

Starts the build in debug mode and pauses it until a remote debugger has been connected. The default debug port is 8000; a different port can be configured with debugPort.
  • Type: boolean
  • Required: No
  • User Property: faktorips.debug

<debugPort>

The port on which the started Faktor-IPS build will listen for a remote debugger.
  • Type: int
  • Required: No
  • User Property: faktorips.debug.port
  • Default: 8000

<eclipseRepository>

Path to the update site to install Eclipse.
  • Type: java.lang.String
  • Required: No
  • User Property: repository.eclipse
  • Default: https://download.eclipse.org/eclipse/updates/4.11/

<executionEnvironment>

Execution environment profile name used to resolve dependencies and run Faktor-IPS. Must be at least JavaSE-11.
  • Type: java.lang.String
  • Required: No
  • Default: JavaSE-11

<exportHtml>

Whether to include the HTML export. It will be generated in target/html.

UI-libraries are required for the HTML export to work, so if you run this build on a CI server like Jenkins, make sure to install for example the Xvfb fake X server.

To package the generated HTML export in its own JAR, configure the maven-jar-plugin as follows:

<plugin>
  <artifactId>maven-jar-plugin</artifactId>
  <executions>
    <execution>
      <configuration>
        <classifier>html</classifier>
        <classesDirectory>${project.build.directory}/html</classesDirectory>
        <includes>**/*</includes>
      </configuration>
      <id>pack-html</id>
      <phase>package</phase>
      <goals>
        <goal>jar</goal>
      </goals>
    </execution>
  </executions>
</plugin>
  • Type: boolean
  • Required: No
  • Default: false

<fipsRepository>

Path to the update site to install Faktor-IPS. The default uses the official Faktor-IPS repository for the fipsRepositoryVersion.
  • Type: java.lang.String
  • Required: No
  • User Property: repository.fips
  • Default: https://update.faktorzehn.org/faktorips/${faktorips.repository.version}/

<fipsRepositoryVersion>

The version of the Faktor-IPS repository to be used. This parameter is used in the default fipsRepository property.
  • Type: java.lang.String
  • Required: No
  • User Property: faktorips.repository.version

<gitStatusPorcelain>

Runs a Git diff on the project to see if any files where changed. Can be configured to only print warnings or to fail the build for uncommitted changes.

<gitStatusPorcelain>
    <failBuild>false</failBuild>
    <verbosity>VERBOSE</verbosity>
</gitStatusPorcelain>

  • Type: org.faktorips.maven.plugin.mojo.internal.GitStatusPorcelain
  • Required: No

<importAsMavenProject>

Whether to import the Faktor-IPS project as a Maven project. If set to true the m2e plugin will be used to import the pom.xml of the Faktor-IPS project.
  • Type: boolean
  • Required: No
  • Default: true

<jdkDir>

Path to the JDK the project should build against. If no path is specified, the parameter jdkId will be evaluated. If both parameters do not contain a value, the executionEnvironment will be used as default.
  • Type: java.lang.String
  • Required: No
  • User Property: jdk.dir

<jdkId>

ID of the JDK the project should build against. The corresponding JDK must be configured in the Maven toolchains.xml This parameter is only evaluated if jdkDir is not specified. If this parameter does not contain a value either, the executionEnvironment will be used as default.
  • Type: java.lang.String
  • Required: No
  • User Property: jdk.id

<jvmArgs>

List of JVM arguments set on the command line.

Example:


<jvmArgs>
  <args>-javaagent:lombok.jar</args>
</jvmArgs>

  • Type: java.util.List
  • Required: No

<localRepository>

Path to a local repository.
  • Type: java.lang.String
  • Required: No
  • User Property: maven.repo.local

<repositories>

p2 repositories which will be used to resolve dependencies. If the default values should be used this parameter must remain unused. Additional repositories can then be defined using the additionalRepositories parameter. The paths of the default repositories can be changed individually using the parameters fipsRepository and eclipseRepository or the properties repository.fips, repository.eclipse.

Example:


<repositories>
 <repository>
  <id>faktor-ips-21-6</id>
  <layout>p2</layout>
  <url>https://update.faktorzehn.org/faktorips/v21_6/</url>
 </repository>
 <repository>
  <id>eclipse-2020-12</id>
  <layout>p2</layout>
  <url>http://download.eclipse.org/eclipse/updates/4.18/</url>
 </repository>
</repositories>

  • Type: java.util.List
  • Required: No

<skip>

Whether to skip mojo execution.
  • Type: boolean
  • Required: No
  • User Property: faktorips.skip
  • Default: false

<work>

Work area. This includes:
  • <work>/configuration: The configuration area (-configuration)
  • <work>/data: The data ('workspace') area (-data)
  • Type: java.io.File
  • Required: No
  • Default: ${java.io.tmpdir}/${project.name}/eclipserun-work