O'Reilly logo

Ant: The Definitive Guide by Jesse Tilly, Eric M. Burke

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Using Cascading Projects and Buildfiles

Q: We’ve noticed projects like JBoss and Jakarta’s Taglibs do not use the project structure suggested in Chapter 3. Instead, they seem to have multiple buildfiles, one for each subproject. This seems to follow the design discussed when “cascading buildfiles” were mentioned. Just what are these things and how should I use them?

There are two options as to how to build a big project that has many sub-projects. One views the project as a monolithic whole, thus using one buildfile to build everything. The single buildfile defines all the targets necessary to build the project as well as all the data elements and other bits necessary for the entire build. Dependencies between subprojects in a single buildfile can be easily defined and maintained. Packaging and deployment targets can be properly related to every subproject target. The single buildfile describing this project’s build is called a monolithic buildfile.

Some complex projects consist of many segregated subprojects making up one application or framework. The organization is such that each subproject can be built on its own, without worrying much about the other subprojects. The set of buildfiles making up this type of project’s build is called a cascading buildfile.

For small projects or projects with complex dependencies between subprojects, a monolithic buildfile is the ideal choice. For projects that are well-defined and whose subprojects are encapsulated, a cascading buildfile system ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required