Jump to: navigation, search

OTHowtos/Compiling With Ant

< OTHowtos
Revision as of 08:49, 4 July 2011 by Stephan.cs.tu-berlin.de (Talk | contribs) (Compiling OT/J source using ANT)

Compiling OT/J source using ANT

Thanks to Carsten Pfeiffer for these instructions. Cf. also this Eclipse help page (scroll to "Using the ant javac adapter").

Should you need to compile an OT/J program outside the OTDT, the following steps should enable you to use ANT for this task:

you'll always find the latest version here in the column "Command Line Compiler"
  • add it to your ANT runtime classpath (either place it in your ant_lib directory or provide the path by a -lib command line option to ant).
  • in your build.xml set the property build.compiler to use the OTDT compiler in <javac> tasks, like that:
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter" />
  • just use <javac> tasks in your build.xml to compile the code.

Here is a build.xml that can be used for compiling the sample OTSample-Flightbonus, provided that subcomponents have already been compiled into booking.jar and bonussystem.jar:

<?xml version="1.0" encoding="UTF-8"?>
<project name="fbapplication" default="all" basedir=".">
    <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter" />
    <!-- adjust this to your project's requirements: -->
    <property name="user.classpath" value="booking.jar:bonussystem.jar" />
    <target name="compile">
        <!-- regular use of javac task (source="1.5" or greater is actually required): -->
        <javac srcdir="src" destdir="bin" 
               source="1.5" target="1.5"/>

This script is invoked with

$ ant -lib ecj-dir -Dotre.jar=otre-jar

You'll have to substitute the following paths:

  • ecj-dir: directory containing the appropriate ecotj-version.jar
  • otre-jar: path to the Object Teams Runtime Environment (OTRE), pointing to eclipse/plugins/org.eclipse.objectteams.runtime_version.jar.
    This path can of course also be defined using a property definition within the build script.