> Yes, for about 30 seconds. I find Ant to be pretty useless for
> development of any decent size project. Some of the things I really
> dislike about it:

I think you've looked at an old version or have missed something 
Justin... ANT rocks.

> - Conditional compilation. Not everything in a directory should be 
compiled.

Eh? You just use the <fileset> tag to select what you want to compile. I'm 
not sure what it is you don't want to compile that it would compile... i.e. 
images or .properties files it won't even look at.

I quote from the ANT manual:

"It is possible to refine the set of files that are being 
compiled/copied. This can be done with the includes, includesfile, 
excludes, excludesfile and defaultexcludes attributes. With the includes 
or includesfile attribute you specify the files you want to have included 
by using patterns. The exclude or excludesfile attribute is used to 
specify the files you want to have excluded. This is also done with 
patterns. And finally with the defaultexcludes attribute, you can specify 
whether you want to use default exclusions or not. See the section on 
directory based tasks, on how the inclusion/exclusion of files works, and 
how to write patterns."
> - Ordered compilation to enforce good design (no circular references)
Hmmm, well I don't particularly have this problem myself. Using <fileset> you 
should be able to achieve this, with multiple <javac> compile tags. They will 
be executed in order.

> - Lack of multiple language support - particularly code that uses C/C++
> which already has make systems in place

It's completely pluggable. I'm sure someone has already written a GCC task 
for ANT, and you can always just use <exec> to shell out to your existing make.

Your j3d.org code is Java anyway. ANT is for building Java projects � 
it's a cross-platform tool. Using external tools like C++ compilers and 
so on is not cross-platform behaviour, so by default it's only supported 
using <exec>

> - No custom control of the build process - for example building JAR
> files with subsets of packages.

WHAT?!!!!!

You must have looked at ANT 100 years ago!

Of course it has this.

<jar file="myjar.jar">
  <fileset dir="build" excludes="**/yourexcludedpackage/*" />
</jar>

and other such constructs... you can include/exclude files on a package 
or file-level basis. It's trivial.

> - Dependence on yet another unreadable language (XML)

?! MAKE is -seriously- unreadable.

> - Requirement to write compilable code in order to extend the
> development environment

That's an advantage! Type safety, portability, robustness, 
maintainability, no new scripting language to learn (cause you know Java, 
right?)... 

> - No need to download yet another tool to compile code.

It's tiny. You download it once.

> In short, I think Ant sucks majorly as a serious development environment
> tool.

Sorry, you are wrong! The many thousands of experienced developers using 
it might disagree with you there ;-)

It's also used to build many open source java projects now (Velocity, 
WebMacro, to name but a few). Are all these experienced developers wrong?

I'm really surprised you feel this way. Give it another try, and mail me 
if you can't make it do what you need � I am sure it can be bent to even 
the strangest requirement. Trust me, everyone I know who started using it 
has increased their productivity massively. 

I have simple ANT scripts that in one go will:

* compile my source against 2 different Java platforms (J2SE and J2ME 
CDC)
* build javadocs for them
* run Junit tests
* builds a jar of binaries for each Java platform, EXCLUDING the Junit 
test classes, or any package called "*.test", includes all image 
resources and other non-class files required.
* builds HTML template-based end-user documentation and website for the 
product (using my own custom ANT Task that uses the WebMacro engine)
* builds a .zip containing all the source, javadocs and other docs.

You can even have it commit files to CVS after a successful build, and 
FTP your .jar to a server for distribution.

Also, the IDEA IDE has excellent ANT support. As a result, we can always 
build our projects identically on any system, whether IDEA is used or 
not. The only requirements to build: A JRE and ANT. 

You can also nest ANT files for large projects. i.e. we have three 
"projects" making up our "platform" and each is a separate component 
(API, API implementation, UI add-on) and has its own ANT build script 
that does all of the above. Then we have a central ANT build script which 
runs all of these separate ANT scripts, copies .jars to the other 
dependent projects' /lib dir in between each script, and then repackages 
the jars into nested OSGi bundle jars for distribution.

It rocks. It's rock solid. It does it better than anything else. I have 
no vested interest in ANT or Apache, in fact I use it slightly 
begrudgingly because I'm not keen on some of the Apache team ;-)

Cheers

==========================================================================To 
unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to