ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Weintraub <>
Subject Re: Dual Java Compilers/Replacement for antcontrib
Date Wed, 16 Feb 2011 15:42:20 GMT
I've decided to move the <javac> code to a marco called <compile>.
Thus, one <javac> task. I was then able to use AntContrib's <if> to
say that if ${javac.executable} is defined, use one <javac> task, but
if it isn't use an identical task where the executable parameter isn't

This allows the developers to do what they want without worrying how
this affects Jenkins/Hudson's basic setup. I didn't want someone
setting that a particular Jenkins/Hudson job with a particular Java
version, but that Java version gets overridden by what the build.xml

I don't even know how important this is anyway. I want to force all
projects to use JDK 1.6 and later JDK 1.7 once it is "stable" and
before the support for JDK 1.6 expires. The idea that we're still
building some projects with JDK 1.3 is ludicrous. At my last position,
I stamped and howled because we were using JDK 1.4, and that was three
years ago. We don't have to be bleeding edge, but we certainly don't
want to use technology that isn't even being supported any more.

The "source" and "target" parameters of the <javac> task help, but I
know there's some issues with their use. For example, we had in our
Java 1.4 code self defined variable types of "enum". This was legal in
JDK 1.4, but not in JDK 1.5. The JDK 1.5 javac task would fail this
code even though it was legal JDK 1.4 code. JDK 1.6 was fine with this
issue and only gave you a warning.

As you read from the above, I have decided to use AntContrib anyway.
AntXtras required different versions for different versions of Ant
which just complicates everything. Flak looks interesting, and is at
least being worked upon. But, in the end, I really only needed a
single <if> which I hope to eliminate once we get all the projects
using JDK 1.6. It was easy enough to include the ant-contrib.jar in
the project, and to have the build.xml reference this particular jar.

Truthfully, the developers use Eclipse for development, and you can
assign what version of Java and Ant you're using with each Eclipse
project, so the whole idea that developers had to have a way to do
this was sort of bogus to begin with. They can run Ant scripts
directly from Eclipse with the versions of Ant and Java they want.

Thanks for your help.

David Weintraub

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message