Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

Apache Ant integration

IzPack can be easily integrated inside an Ant build process.

You need to have the following prerequisites installed on your local system:

  • a Java runtime environment (Oracle, OpenJDK etc.), version 6 or above,
    Apache Ant will probably require the $JAVA_HOME environment variable to be set to it.
  • a preinstalled version of the Apache Ant runtime (version 1.6.5 or above),
  • the latest distribution installer of IzPack 5.

Here is how the Ant build file may look like:

Example
<?xml version="1.0" encoding="UTF-8"?>

<project name="izpack" default="compile">
  
  <property name="izpack-dist" value="${user.home}/IzPack"/>
  <property name="izpack-installer" value="setup.jar"/>
  
  <path id="lib.path">
    <fileset dir="${izpack-dist}/lib" includes="*.jar"/>
  </path>
  
  <taskdef name="izpack"
           classname="com.izforge.izpack.ant.IzPackTask"
           classpathref="lib.path"
           />
  
  <target name="compile">
    <echo message="Makes the installer using IzPack to ${izpack-installer}"/>
    <izpack input="${basedir}/src/main/resources/install.xml"
            output="${basedir}/${izpack-installer}"  
            installerType="standard"              
            basedir="${basedir}/src/main/resources"
            izPackDir="${izpack-dist}"/>
    <echo message="${izpack-installer} created"/>
  </target>
  
</project>

The above assumes that the IzPack distribution has been installed to ${user.home}/IzPack.

The IzPack task takes the following parameters:
  • input: the XML installation file. The installation can be specified as an external file, or embedded using a config child element.
  • output: the output jar installer file
  • installerType: optional. standard or web. If web, the <webdir> attribute must be specified in the input file. Used to force creation of a standard installer when the <webdir> attribute has been used.
  • inheritAll: optional, boolean. If true all properties defined in the ant build process are transmitted to izpack parser for substitution. 

  • baseDir: the base directory to resolve the relative paths
  • izPackDir: the IzPack home directory (the target directory when executing the izpack-dist.jar)

You can find a fully compilable example here:

Using the above example:

  • Download the latest distribution installer and install it locally ($HOME/IzPack is assumed to be the installation directory).
  • Unpack test.zip in a working directory of your choice.
  • Call the Ant build (tested with Ant 1.9.6):
    cd test
    ant

It builds an executable installer setup.jar in the working directory.

Embedding the installation file using a config element

Instead of using the 'input' attribute to specify an external installation document, you can embed the installation config as a child of the IzPack task using a config child element with a CDATA section. For example:

<property name="jboss.home.url" value="http://www.jboss.com/" />
...
 
<!-- Call IzPack with an embedded install using the config element -->
<IzPack output="${dist.dir}/IzPack-install.jar"
        installerType="standard"
        basedir="${dist.dir}"
        inheritAll="true"
        IzPackDir="${dist.dir}/">
        <config><![CDATA[
<installation version="1.0">
   <info>
      <appname>JBossAS</appname>
      <appversion>4.0.2</appversion>
      <appsubpath>jboss-4.0.2</appsubpath>
      <authors>
         <author name="JBoss Inc." email="sales@jboss.com"/>
      </authors>
      <url>@{jboss.home.url}</url>
      <javaversion>1.4</javaversion>
   </info>
...
        ]]></config>
</IzPack>

Property references of the form

@{x}

are replaced by the associated x ant property if it is defined.

  • No labels