Hi Jamie,

I've gone through the same sort of hassle recently and this is the solution
that I came up with based on a suggestion from Stefan Bodewig:

Our main build environment is JDK 1.4 but there are parts of the system that
must be compiled with JDK 1.3. So Ant is executed using JDK 1.4 and uses the
cross compiling options when compiling the 1.3 classes. This is what some of
our build file looks like:

  <target name="compile-java-1.3">
    <javac debug="yes"
        deprecation="yes"
        includeantruntime="false"
        includejavaruntime="false"
        target="1.2"
        source="1.3"
        extdirs="${java13.home}/jre/lib/ext"
        destdir="${build}"
        srcdir="${src}">
      <bootclasspath>
        <pathelement location="${java13.home}/jre/lib/rt.jar"/>
      </bootclasspath>
      <classpath refid="alto.classpath"/>
      <include name="${alto.package}/agent/**/*.java"/>
      <include name="${alto.package}/common/**/*.java"/>
      <exclude
name="${alto.package}/common/communication/generator/*.java"/>
      <exclude name="${alto.test.dir}/*.java"/>
    </javac>
  </target>

  <target name="compile-java-1.4">
    <javac debug="yes"
        deprecation="yes"
        destdir="${build}"
        srcdir="${src}"
        target="1.4"
        source="1.4">
      <classpath refid="alto.classpath"/>
      <include name="${alto.package}/client/**/*.java"/>
      <include name="${alto.package}/commonui/**/*.java"/>
      <include name="${alto.package}/nexus/**/*.java"/>
      <include name="${alto.package}/workstation/**/*.java"/>
      <exclude name="${alto.test.dir}/*.java"/>
    </javac>
  </target>

Where java13.home is a property defined to point to the JDK 1.3 directory.

Of course we have to make sure that that none of the 1.3 compiled classes
refer to 1.4 compiled classes since it dies with the incorrect class version
error.

Ciao,
Gordon


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to