atom feed23 messages in org.apache.ant.userRe: Building a hierarcical build-file...
FromSent OnAttachments
schmittOct 17, 2000 7:13 am 
Stefan BodewigOct 17, 2000 7:30 am 
Dino ValenteOct 17, 2000 8:19 am 
Stefan BodewigOct 17, 2000 8:34 am 
Craig R. McClanahanOct 17, 2000 8:44 am 
George McKInneyOct 17, 2000 8:44 am 
Mahlen MorrisOct 17, 2000 8:51 am 
Stefan BodewigOct 17, 2000 8:52 am 
Dino ValenteOct 17, 2000 9:06 am 
Stefan BodewigOct 17, 2000 9:21 am 
Craig R. McClanahanOct 17, 2000 9:55 am 
Dan SmithOct 17, 2000 10:11 am 
Chris ToddOct 17, 2000 5:24 pm 
Chris ToddOct 17, 2000 6:11 pm 
Diane HoltOct 17, 2000 10:48 pm 
Stefan BodewigOct 17, 2000 11:50 pm 
Stefan BodewigOct 18, 2000 12:53 am 
Stefan BodewigOct 18, 2000 1:10 am 
Stefan BodewigOct 18, 2000 1:34 am 
Douglas GuptillOct 18, 2000 1:48 pm 
Stefan BodewigOct 19, 2000 4:30 am 
Dino ValenteOct 20, 2000 7:55 am 
Stefan BodewigOct 20, 2000 7:58 am 
Subject:Re: Building a hierarcical build-file tree?
From:Stefan Bodewig (bode@bost.de)
Date:Oct 18, 2000 12:53:58 am
List:org.apache.ant.user

"GM" == George McKInney <geo@tantalus.com> writes:

IMHO building different modules by different targets in the same build file works better.

GM> If you've got the time, would you outline the reasons for your GM> opinion?

Well, probably because "this is what I've ever done and it worked out well".

Most of the time my modules are not that self contained, they rely on common utility classes for example. If they were really separate beasts I'd probably put them into different CVS modules and not have a common master build file for them at all.

Given that my modules are connected in some way, I want to make sure that the latest versions of all modules work with each other - I don't want to remember that version 1.1 of module A works with version 2.0 of module B but not with version 2.1, but simply say module A of 2000-10-18 works with module B of 2000-10-18. Much the same reasons as the ones given in <http://www.martinfowler.com/articles/continuousIntegration.html#N157>.

To achieve this, I have a single common compileall target that will literally compile everything (with multiple javac tasks that have different classpaths containing servlet-api 2.0 or 2.2 and so on). Whenever I change a shared class I do an "ant clean compileall" and I will see the effects immediately.

And as I've said, *IMHO* it works better that way, but that doesn't mean a different approach would be inferior to mine, just that I've had very good experiences with my setup.

Stefan