This week's book giveaway is in the Flex forum. We're giving away four copies of Flex 4 in Action and have Tariq Ahmed, Dan Orlando, John C. Bland II & Joel Hooks on-line! See this thread for details.
You question does not seem to provide the complete requirement. Do you mean to ask what structures you have to have in your environment so as to meet with the J2EE specification?
If not, what structures the ant should be given to execute? In that case , it really does not matter. Any folder structure can be used and ant has to be instructed to fetch the files inside the directories by properly pointing to the top-level/root directory.
If you have meant to ask what exactly the contents should be present in the folders like lib,dist etc by looking at your project architecture means
lib - is used to keep all the library files like any .jar files your application may refer to.
dist - means distribution. it is just to keep your archive file (either .war or .ear) so that you can just distribute that file alone for your application to be hosted.
The primary difference between Ant and Maven is that Maven has the build rules already embedded in the Maven system. So if you set up the right directories, place the right files in them, and invoke the desired Maven goal, everything is magically done for you (magic meaning you really can't tell what it's doing, just what comes out the other end).
Ant, on the other hand, does nothing by itself. You have to set up your own rules, and because you do, you can select your own project structure.
Maven is popular for big projects - especially open-source ones, because the buy-in time is short. People don't have to learn a new directory structure for each project they come into. However, it can be somewhat confining.
Additionally, Maven can automatically download dependent components from component repositories (both standard/global and local/custom) and upload constructed components to component repositories. These are binary repositories and not to be confused with source repositories.
Ant is for people who want complete control and are willing to pay the price.
Which tool you prefer to use is largely a matter of personal preference, based on the kind of work your project needs to have done to get built, tested, deployed, etc.
If a low price is more important to you than getting good value for your money, you're not as prosperous as you think you are.