faktorips:faktorips-build
Full name:
org.faktorips:faktorips-maven-plugin:22.12.21.release:faktorips-build
Description:
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.
- The goal is thread-safe and supports parallel builds.
- Binds by default to the lifecycle phase:
generate-sources
.
Optional Parameters
Name | Type | Since | Description |
---|---|---|---|
<additionalPlugins> |
List<Dependency> |
- |
Additional Eclipse-plugins which will be resolved transitively to make up the eclipse runtime.
Example:
|
<additionalRepositories> |
List<Repository> |
- |
This parameter makes it possible to define additional repositories while using the default repositories (for which the repositories parameter must remain unused).
Example:
|
<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 . |
<buildIpsOnly> |
boolean |
- |
Whether to only start the IpsBuilder or all configured builders. The default is to use only the IpsBuilder as it creates the Java source files before the Maven compiler plugin compiles the entire project.Default value is: true . |
<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 . |
<debugLogOptions> |
String |
- |
The full path to a custom trace-options file. This option can significantly increase the logging output. Per default an extensive list of trace-options is added when maven is started with -X or -debug .
For more information see FAQ How do I use the platform debug tracing facility User property is: faktorips.debuglog.options . |
<debugPort> |
int |
- |
The port on which the started Faktor-IPS build will listen for a remote debugger. See also: debug 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.15/ .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". User property is: faktorips.executionEnvironment . |
<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 . |
<gitFailBuild> |
Boolean |
- |
Overrides the org.faktorips.maven.plugin.mojo.internal.GitStatusPorcelain.getFailBuild() parameter. Specially helpful when debugging builds.User property is: git.fail.build . |
<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.
|
<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<String> |
- |
List of JVM arguments set on the command line.
Example:
|
<localRepository> |
String |
- |
Path to a local repository. User property is: maven.repo.local . |
<loggingMode> |
LoggingMode |
- |
There are three different logging modes available for this plugin.
original: will redirect everything to STDOUT. perThread: will redirect the STDOUT of every thread to it's own file, and output one file after the other. perThreadFiltered: additionally to the The fastest mode is obviously the When maven is started with Default value is: perThreadFiltered . |
<repositories> |
List<Repository> |
- |
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:
See also: additionalRepositories |
<skip> |
boolean |
- |
Whether to skip mojo execution. Default value is: false .User property is: faktorips.skip . |
<work> |
File |
- |
Work area. This includes:
|
Parameter Details
<additionalPlugins>
Example:
<additionalPlugins>
<dependency>
<artifactId>org.faktorips.productvariant.core</artifactId>
<type>eclipse-plugin</type>
</dependency>
</additionalPlugins>
<additionalPlugins>
<dependency>
<artifactId>org.eclipse.jdt.junit</artifactId>
<type>eclipse-plugin</type>
</dependency>
</additionalPlugins>
<additionalPlugins>
<dependency>
<artifactId>org.eclipse.jdt.junit5.runtime</artifactId>
<type>eclipse-plugin</type>
</dependency>
</additionalPlugins>
- Type:
java.util.List<org.apache.maven.model.Dependency>
- Required:
No
<additionalRepositories>
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<org.eclipse.tycho.plugins.p2.extras.Repository>
- Required:
No
<antScriptPath>
- Type:
java.lang.String
- Required:
No
- User Property:
ant.script
<antTarget>
- Type:
java.lang.String
- Required:
No
- User Property:
ant.target
- Default:
import
<buildIpsOnly>
IpsBuilder
or all configured builders. The default is to use only the IpsBuilder
as it creates the Java source files before the Maven compiler plugin compiles the entire project.- Type:
boolean
- Required:
No
- Default:
true
<debug>
debugPort
.- Type:
boolean
- Required:
No
- User Property:
faktorips.debug
<debugLogOptions>
-X
or -debug
.
For more information see FAQ How do I use the platform debug tracing facility
- Type:
java.lang.String
- Required:
No
- User Property:
faktorips.debuglog.options
<debugPort>
See also: debug
- Type:
int
- Required:
No
- User Property:
faktorips.debug.port
- Default:
8000
<eclipseRepository>
- Type:
java.lang.String
- Required:
No
- User Property:
repository.eclipse
- Default:
https://download.eclipse.org/eclipse/updates/4.15/
<executionEnvironment>
- Type:
java.lang.String
- Required:
No
- User Property:
faktorips.executionEnvironment
<exportHtml>
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>
fipsRepositoryVersion
.- Type:
java.lang.String
- Required:
No
- User Property:
repository.fips
- Default:
https://update.faktorzehn.org/faktorips/${faktorips.repository.version}/
<fipsRepositoryVersion>
fipsRepository
property.- Type:
java.lang.String
- Required:
No
- User Property:
faktorips.repository.version
<gitFailBuild>
org.faktorips.maven.plugin.mojo.internal.GitStatusPorcelain.getFailBuild()
parameter. Specially helpful when debugging builds.- Type:
java.lang.Boolean
- Required:
No
- User Property:
git.fail.build
<gitStatusPorcelain>
<gitStatusPorcelain>
<failBuild>false</failBuild>
<verbosity>VERBOSE</verbosity>
</gitStatusPorcelain>
- Type:
org.faktorips.maven.plugin.mojo.internal.GitStatusPorcelain
- Required:
No
<importAsMavenProject>
true
the m2e plugin will be used to import the pom.xml of the Faktor-IPS project.- Type:
boolean
- Required:
No
- Default:
true
<jdkDir>
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>
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>
Example:
<jvmArgs>
<args>-javaagent:lombok.jar</args>
</jvmArgs>
- Type:
java.util.List<java.lang.String>
- Required:
No
<localRepository>
- Type:
java.lang.String
- Required:
No
- User Property:
maven.repo.local
<loggingMode>
- original
- perThread
- perThreadFiltered
original: will redirect everything to STDOUT.
perThread: will redirect the STDOUT of every thread to it's own file, and output one file after the other.
perThreadFiltered: additionally to the perThread
mode this mode will filter the thread's output for well known exceptions e.g. FileNotFoundException of the junit eclipse plugin.
The fastest mode is obviously the original
mode while the slowest is the perThreadFiltered
one. The overhead added to the build time by the perThreadFiltered
is about 5% but will produce a clean and continuous log output even in multi-threaded builds.
When maven is started with -X
or -debug
, extensive log output is created and therefore the original
mode is chosen automatically.
- Type:
org.faktorips.maven.plugin.mojo.internal.LoggingMode
- Required:
No
- Default:
perThreadFiltered
<repositories>
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>
See also: additionalRepositories
- Type:
java.util.List<org.eclipse.tycho.plugins.p2.extras.Repository>
- Required:
No
<skip>
- Type:
boolean
- Required:
No
- User Property:
faktorips.skip
- Default:
false
<work>
- <work>/configuration: The configuration area (-configuration)
- <work>/data: The data ('workspace') area (-data)
- Type:
java.io.File
- Required:
No