Gripes please: Build System
By Angsuman Chakraborty, Gaea News NetworkMonday, February 16, 2004
Background: I have used ANT (yes make and its variants too) a lot, recommended it for creating our own build system at a company I worked. At that time I realized that Ant has challenges addressing the needs of enterprise wide build system. In a project project involving multiple components, which are shared, ant doesn’t make it easy to inherit build files, or make it parameterized. Compiling and testing components selectively based on its dependency isn’t easy to do in Ant.
Ant doesn’t work well on the deployment side of the picture (yes I know it has ftp etc). After developing very complex ant files (with custom coding) we could achieve what we wanted, however the effort is definitely not for Joe SMith who just wants to get the job done.
Then comes maven. Conceptually I have problems with a build system, which downloads components as needed, assumes internet connection etc. It just doesn’t fit into a easy to use model, rather it tries to mold us to its mindset.
Now obviously creating a new build system from scratch is not the way to go. I think we should build upon Ant. However Ant by itself is only a part of the story. Lots of development needs to be done to make it to the stage where you can deploy it easily and in a standardized way across projects.
You have all used a build system or other or may have even developed one. I want to know from you what would you like to see in an ideal build system, what problems solved. Suggestions, gripes, ideas welcome.
Note: In response to Kevin Dangoor’s comments:
Kevin,
There is no doubt that Ant is a decent piece of software. And I too have used the Ant scripting facility and Java tasks. My point is that Ant doesn’t solve the whole picture, though it forms the core of it, there are still a lot of work needed to make it suitable for a enterprise and that work is not easily doable by the normal release engineers (who are mostly perl hackers).
|
February 17, 2004: 8:08 pm
Hi, If I would have to develop a build system for a large software project I would probably go for using Groovy and using Ant just as a library. The quality of the Ant library is after all really good. Regards, |
|
rffrff |
February 16, 2004: 10:05 pm
this ha been debated to death, prolly. You may find interesting |
|
February 16, 2004: 6:12 am
Though Ant is certainly not perfect, it’s a fairly decent piece of infrastructure. I don’t know what your specific issues are, but Ant 1.6 does add the ability to include other build files, and the ability to create your own tasks (via scripting or Java) is fairly easy and flexible. |
John