Maven and Ant both are very popular open source build tools provided Apache. Both have same goal to make easy to build process, deployment process of project. Beside from this these similarities then have major differences to each other as following..
|Maven uses a more declarative approach means you have to define in the Maven POM file(pom.xml).||Ant uses an imperative approach means you have to specify in the Ant build file(build.xml) what actions Ant should take.|
|Maven has default directory layout.||Ant has no default directory layout.|
|Maven has Build Life Cycles, Phases and Goals.||Ant has no life cycle.|
|Maven is a framework.||Ant is a tool.|
|Maven build is a reusable as a plug in||Ant build file not reusable|
|Maven is a more than build tool like project management, dependency resolving etc.||Ant is a build tool|
|Maven is more preferable because of its flexibility and re-usability||Ant is less preferable|