Hi all,
I've been using ANT as the build tool for the LEAP project
(http://leap.crm-paris.com) which aims to develop an intelligent agent
platform which works with J2SE, PersonalJava, J2ME CLDC, J2ME MIDP on a
numbers of devices including iPaqs and Palms. Consequently our build
environment is quite complex and possibly has issues most other users don't
face.
Currently we have a simple module structure which divides the sourcecode
according to JVM and a kernel module which is common to all JVMs. Different
implementations of a classes may exist in each module. However, some builds
(notably PersonalJava) use classes from the J2SE, Java 1.1 and J2ME builds.
This introduces problems with the JAVAC task because it takes a number of
source directories and then includes or excludes classes relative to these
paths. Inevitably we get problems with duplicate classes because we cannot
exclude classes from a particular source directory whilst including others.
My current workaround is to specify a fileset which copies only the files
required for the PersonalJava build into a temp directory and then compiles
them from there. This is far from ideal. So another solution is to have a
much more complicated module structure which would prevent duplicate files
within source directories but this is difficult (politically).
So I'm considering implementing a new type of JAVAC task which will be able
to include and exclude specific files rather than just specific classes.
Help and guidance appreciated.
I welcome comments from anyone with similar experiences, solutions to the
problems with JAVAC (or indeed corrections if I'm wrong about this), or
another way of approaching the problem.
Jamie
Jamie Lawrence.vcf