Lifecycle Mappings
...
Configuration Attribute | Value Range | Default Value | Description |
---|---|---|---|
baseDir | string | ${project.build.directory}/staging | Base directory of compilation process |
installFile | string | ${basedir}/src/main/izpack/install.xml | Location of the IzPack installation file. |
comprFormat | default | bzip2 | default | Target compression format of the compiled installer jar |
comprLevel | integer -1, 0..9 | -1 | Compression level of the compiled installer jar. Deactivated by default (-1) |
outputDirectory | ${project.build.directory} | Target directory containing the compiled installer jar | |
mkdirs | true | false | false | Whether to automatically create parent directories of the output file |
finalName | Name of the compiled installer jar | ||
classifier | Not set | Classifier to add to the artifact generated. If given, the artifact is attachable. Furthermore, the output file name gets -classifier as suffix. If this is not given,it will merely be written to the output directory according to the finalName. | |
enableAttachArtifact | true | false | true | Whether to attach the generated installer jar to the project as artifact if a classifier is specified. This has no effect if no classifier was specified. |
enableOverrideArtifact | true | false | false | Whether to override the artifact file by the generated installer jar, if no classifier is specified. This will set the artifact file to the given name based on outputDirectory + finalName or on output. This has no effect if a classifier is specified. |
autoIncludeUrl | true | false | false | Whether to automatically include project.url from Maven into the IzPack info header |
autoIncludeDevelopers | true | false | false | Whether to automatically include developer list from Maven into IzPack info header |
kind | standard | web | standard | Resulting installer type |
...
Code Block | ||
---|---|---|
| ||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> ... <!-- Launch IzPack automatically --> <packaging>izpack-jar</packaging> <properties> <!-- Installer variables --> <staging.dir>${project.build.directory}/staging</staging.dir> <info.appName>My Killer Application</info.appName> <info.appsubpath>my-killer-app/standard</info.appsubpath> <izpack.dir.app>${basedir}/src/main/izpack</izpack.dir.app> <staging.dir.app>${staging.dir}/appfiles</staging.dir.app> </properties> ... <plugin> <groupId>org.codehaus.izpack</groupId> <artifactId>izpack-maven-plugin</artifactId> <extensions>true</extensions> <configuration> <baseDir>${staging.dir.app}</baseDir> <installFile>${izpack.dir.app}/install.xml</installFile> <outputDirectory>${project.build.directory}</outputDirectory> <finalName>${project.build.finalName}</finalName> <enableOverrideArtifact>true</enableOverrideArtifact> <mkdirs>true</mkdirs> <autoIncludeUrl>false</autoIncludeUrl> <autoIncludeDevelopers>false</autoIncludeDevelopers> </configuration> </plugin> ... </project> |
Supporting Goals
You may want to include additional goals in your POM in order to get files into the staging area from your src directory and to find dependencies that you need to have packaged with your installer.
Moving source files to your staging area
Since the staging directory is usually a temporary area, your installer project includes a scr folder where you create the files required by the IzPack installer and supporting files for your application such as license text files, README, documentation, etc.. You will need to move them to your staging area prior to invoking the IzPack goal to run the compiler.
The Maven Antrun plugin will do this for you.
Code Block | ||
---|---|---|
| ||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
...
<!-- Launch IzPack automatically -->
<packaging>izpack-jar</packaging>
<properties>
<!-- Installer variables -->
<staging.dir>${project.build.directory}/staging</staging.dir>
<info.appName>My Killer Application</info.appName>
<info.appsubpath>my-killer-app/standard</info.appsubpath>
<izpack.dir.app>${basedir}/src/main/izpack</izpack.dir.app>
<staging.dir.app>${staging.dir}/appfiles</staging.dir.app>
</properties>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>default-cli</id>
<phase>process-resources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<copy todir="${staging.dir}">
<fileset dir="${izpack.dir.app}" />
</copy>
</target>
</configuration>
</execution>
</executions>
</plugin>
...
</project |
This will be invoked by asking Maven to run the antrun:run goal. From the command line this is "mvn antrun:run.
The AntRun Plugin Documentation describes the plugin in detail.
Once you have run this goal, verify that all of the files are in the staging directory in the structure that you have described in your installation file.