You can always do so by configuring the izpack-maven-plugin:
<!-- mvn help:describe -DgroupId=org.codehaus.izpack
-DartifactId=izpack-maven-plugin -Dversion=5.0.0-beta11 -Ddetail -->
<configuration>
<installFile>${staging.dir}/install.xml</installFile>
<attach>false</attach>
<kind>standard</kind>
<descriptorEncoding>UTF-8</descriptorEncoding>
<izpackBasedir>${staging.dir}</izpackBasedir>
<customPanelDirectory>${staging.dir}</customPanelDirectory>
</configuration>
This is part of my installer's POM which packages GlassFish and my own war.
I have a utility class that during installation it configures glassfish and
deploys the war.
<properties>
<!-- IzPack configuration (also substituted in the descriptor) -->
<staging.dir>${project.build.directory}/staging</staging.dir>
<events.dir>${staging.dir}/custom</events.dir>
<panels.dir>${staging.dir}/custom</panels.dir>
</properties>
<!--
Dependencies we need in the installer. Those are copied to
${staging.dir} but they are not
magically added to the installer.
We need to move them to the correct place via maven-antrun-plugin and
then add the
corresponding jar entry to the installer descriptor.
See:
http://izpack.org/documentation/installation-files.html#the-jar-merging-elem
ent-jar
-->
<dependencies>
<!-- COMPILE dependencies (jar stage = both) -->
...
<dependency>
<groupId>com.myorg</groupId>
<artifactId>my-war</artifactId>
<version>${project.version}</version>
<type>war</type>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.glassfish.main.distributions</groupId>
<artifactId>glassfish</artifactId>
<version>${glassfishVersion}</version>
<type>zip</type>
<scope>runtime</scope>
<exclusions>
<exclusion>
<artifactId>cli-optional</artifactId>
<groupId>org.glassfish.main.admin</groupId>
</exclusion>
<exclusion>
<artifactId>server-mgmt</artifactId>
<groupId>org.glassfish.main.admin</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- RUNTIME dependencies (jar stage = install) -->
...
<!-- TEST dependencies -->
...
</dependencies>
<build>
<defaultGoal>package</defaultGoal>
<!-- Turn on filtering. -->
<resources>
<resource>
<filtering>true</filtering>
<directory>src/main/izpack</directory>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>**/*.java</exclude>
<exclude>**/*.gif</exclude>
<exclude>**/*.ico</exclude>
</excludes>
</resource>
</resources>
<pluginManagement>
<plugins>
<!-- Do not install this artifact to the local repository. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<executions>
<execution>
<id>default-install</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
<!-- Do not deploy this artifact to the remote repository. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<executions>
<execution>
<id>default-deploy</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- Configure the compiler to use Java 1.5 -->
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
<!-- Have project dependencies be picked up by izPack when its
compiler runs -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>default-resources</id>
<phase>process-resources</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<stripVersion>true</stripVersion>
<outputDirectory>${staging.dir}/dependency</outputDirectory>
<excludeTransitive>false</excludeTransitive>
<overWriteReleases>true</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<!-- this excludes tools.jar, e.g. -->
<excludeScope>system</excludeScope>
<!-- Don't copy custom panels or events where our application
jars live -->
<excludeArtifactIds>my-installer-panels,my-installer-event</excludeArtifactI
ds>
<!-- Filter out what we don't want inside the installer (stand
alone compiler, Wicket, sprint, etc.) -->
<excludeGroupIds>org.codehaus.izpack,org.apache.wicket,org.springframework</
excludeGroupIds>
</configuration>
</execution>
<execution>
<!-- copy izpack custom (custom panels, etc.) jars to izpack
staging custom -->
<id>copy-izpack-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${staging.dir}/custom</outputDirectory>
<excludeTransitive>false</excludeTransitive>
<stripVersion>true</stripVersion>
<overWriteReleases>true</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<!-- This causes *only* our custom panels to be copied -->
<includeArtifactIds>my-console-installer-panels,my-console-installer-event</
includeArtifactIds>
</configuration>
</execution>
</executions>
</plugin>
<!-- Copy other checked and filtered resource into staging area -->
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>${mavenAntrunPluginVersion}</version>
<executions>
<execution>
<id>create-staging-area</id>
<phase>process-resources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<copy todir="${staging.dir}" overwrite="true"
verbose="true">
<fileset dir="${basedir}/src/main/izpack" />
</copy>
<copy todir="${staging.dir}" overwrite="true"
verbose="true">
<fileset dir="${basedir}/target/classes" />
</copy>
<!-- Obtain fresh copy of GlassFish and patch it as needed
-->
<unzip src="${staging.dir}/dependency/glassfish.zip"
dest="${staging.dir}" />
<delete verbose="true">
<fileset dir="${staging.dir}/dependency"
includes="**/glassfish.zip" />
</delete>
<move file="${staging.dir}/glassfish3"
toFile="${staging.dir}/glassfish" />
<move file="${staging.dir}/dependency/ojdbc6.jar"
toFile="${staging.dir}/drivers/ojdbc6-${ojdbcVersion}.jar" />
<move file="${staging.dir}/dependency/jtds.jar"
toFile="${staging.dir}/drivers/jtds-${jtdsVersion}.jar" />
<move file="${staging.dir}/dependency/ntlmauth.dll"
tofile="${staging.dir}/glassfish/lib/ntlmauth.dll" />
<move file="${staging.dir}/dependency/ntlmauth64.dll"
tofile="${staging.dir}/glassfish/lib/ntlmauth64.dll" />
<move
file="${staging.dir}/dependency/hibernate-jpa-2.0-api.jar"
tofile="${staging.dir}/glassfish/lib/endorsed/hibernate-jpa-2.0-api.jar" />
<move file="${staging.dir}/dependency/my-console-war.war"
tofile="${staging.dir}/my.war" />
<delete verbose="true">
<!-- Keep only files that will be merged into the
Installer -->
<fileset dir="${staging.dir}/dependency"
includes="**"
excludes="**/my-console-util.jar, **/my-commons.jar,
**/log4j.jar"
/>
</delete>
</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.izpack</groupId>
<artifactId>izpack-maven-plugin</artifactId>
<version>${izpackVersion}</version>
<dependencies>
<dependency>
<groupId>org.codehaus.izpack</groupId>
<artifactId>izpack-panel</artifactId>
<version>${izpackVersion}</version>
</dependency>
<dependency>
<groupId>com.myorg</groupId>
<artifactId>my-console-installer-panels</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.myorg</groupId>
<artifactId>my-console-installer-event</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<!-- mvn help:describe -DgroupId=org.codehaus.izpack
-DartifactId=izpack-maven-plugin -Dversion=5.0.0-beta11 -Ddetail -->
<configuration>
<installFile>${staging.dir}/install.xml</installFile>
<attach>false</attach>
<kind>standard</kind>
<descriptorEncoding>UTF-8</descriptorEncoding>
<izpackBasedir>${staging.dir}</izpackBasedir>
<customPanelDirectory>${staging.dir}</customPanelDirectory>
</configuration>
<executions>
<execution>
<id>standard-installer</id>
<phase>package</phase>
<goals>
<goal>izpack</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Do not deploy any of the installer artifacts. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>${mavenDeployPluginVersion}</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>