Faktor-IPS workspace settings
Example
<plugins>
<plugin>
<groupId>org.faktorips</groupId>
<artifactId>faktorips-maven-plugin</artifactId>
<configuration>
<work>${integrationtest.workspace}/${project.name}</work>
<importAsMavenProject>false</importAsMavenProject>
<exportHtml>true</exportHtml>
<debug>true</debug>
<debugPort>4711</debugPort>
</configuration>
<executions>
<execution>
<goals>
<goal>faktorips-clean</goal>
<goal>faktorips-build</goal>
</goals>
</execution>
</executions>
</plugin>
buildIpsOnly
With the parameter buildIpsOnly
Faktor-IPS will only generate the source code, which is then compiled by the “maven-compile” plugin in the lifecycle phase compile. If this parameter is set to false
the Faktor-IPS build will generate the source code and compile it in Eclipse just before the “maven-compiler” compiles it again.
Therefore the default value is true
.
work
The parameter work
can be used to overwrite the location of the workspace used to compile the Faktor-IPS project.
It must not be set to a directory inside the project's own directory, such as the project's target directory, as Eclipse can not import a project that contains the workspace directory.
The default value is ${java.io.tmpdir}/${project.name}/eclipserun-work
.
importAsMavenProject
By default a Faktor-IPS project will be imported as Maven project, therefore it must have a pom.xml file.
It can also be imported as a Eclipse project if a .project file exists. This behavior must be activated by setting <importAsMavenProject>false</importAsMavenProject>
.
exportHtml
With this setting <exportHtml>true</exportHtml>
the Faktor-IPS build will export the model with the Faktor-IPS Html Export Wizard.
To package the generated HTML export in its own JAR, configure the maven-jar-plugin like
<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>
Keep in mind that UI-libraries are required for the HTML export to work, so if you run this build on a CI server like Jenkins you will need a server with a desktop environment. For a pure CLI Linux server you can use the Xvfb fake X server for example.
Debugging the build
The parameter debug
starts the build in debug mode and pauses it until a remote debugger has been connected. The default debug port is 8000 but a different port can be configured with the parameter debugPort
.
If Maven is started with the debug option (-X or –debug) Eclipse will be started with a platform debug tracing facility file. If for some reason the standard trace settings are not suitable, a separate tracing options file can be specified with the parameter <debugLogOptions>/path/to/trace_file</debugLogOptions>
. For more information how to write your own trace file see: FAQ How do I use the platform debug tracing facility
antScriptPath
To correctly import and build the Faktor-IPS project in Eclipse, the plugin uses a Ant script, performing the necessary steps. If no path is specified, a new script is generated based on the configuration.
If a custom ant script is used the parameters exportHtml
, importAsMavenProject
and the JDK settings will be ignored from the maven plugin. The default target is import but can be configured with the parameter antTarget
.
<plugins>
<plugin>
<groupId>org.faktorips</groupId>
<artifactId>faktorips-maven-plugin</artifactId>
<configuration>
<antScriptPath>${project.basedir}/build/importProjects.xml</antScriptPath>
<antTarget>doBuild</antTarget>
</configuration>
<executions>
<execution>
<goals>
<goal>faktorips-clean</goal>
<goal>faktorips-build</goal>
</goals>
</execution>
</executions>
</plugin>
An example for a custom ant script:
<project name="importProjects">
<taskdef name="faktorips.import" classname="org.faktorips.devtools.ant.ProjectImportTask" />
<taskdef name="faktorips.fullBuild" classname="org.faktorips.devtools.ant.FullBuildTask" />
<taskdef name="faktorips.exportHtml" classname="org.faktorips.devtools.ant.ExportHtmlTask" />
<taskdef name="faktorips.configureJdk" classname="org.faktorips.devtools.ant.ConfigureJdkTask" />
<!-- <taskdef name="faktorips.mavenRefresh" classname="org.faktorips.devtools.ant.MavenProjectRefreshTask" /> -->
<target name="doBuild">
<echo message="executing faktorips import now" />
<faktorips.configureJdk dir="${jdk.dir}" />
<faktorips.import dir="${sourcedir}" copy="false" />
<!--
<faktorips.mavenImport dir="${sourcedir}" />
<faktorips.mavenRefresh updateSnapshots="true" />
-->
<faktorips.fullBuild />
<faktorips.exportHtml ipsProjectName="my.awesome.fips.project" showValidationErrors="true" showInheritedObjectPartsInTable="true" locale="de" destination="${sourcedir}/target/html" ipsObjectTypes="ALL" />
</target>
</project>