Apache Maven Simplifies the Java Build Process... Even More Than Ant proposes this DevX article that explains some issues about the Project Object Model (POM) and cross project reuse / cross developer reuse and some of the more advanced logic/expression/scripting features included… also there's a great feature comparison chart hidden after a java-script popup i would like to replicate here…
| Concept | Maven | Ant |
|---|---|---|
| Invokable grouping of build tasks | Goal | Target |
| Project meta-data file (POM) | <b>project.xml</b> |
–
|
| Goal/Target definition file (project-specific) | <b>maven.xml</b> |
<b>build.xml</b> |
| Goal definition file (cross-project) | <b>maven.xml</b> |
–
|
| Goal/Target creation language | Jelly Script, which includes Ant tasks and JSTL-like tags | Ant tasks |
| Conditional logic and looping support | Jelly has built-in tags based on JSTL | Indirectly, through Script Task or a custom Task |
| Cross-project Goal/Target reuse | Yes | No |
| Cross-project Task reuse | Yes | Yes |
| Expression support | Superset of JSP EL | Basic property access |
| Goals prerequisites | prerequisite attribute of goal tag |
depends* attribute of target tag |
| Goal/Target extensibility | <preGoal> and <postGoal> |
–
|
Comments
Maven vs. Ant features
Some of these are just plain wrong.
The project meta data file for maven is 'project.xml'
For Goal/Target definition file (project-specific), it should be maven.xml
Maven vs. Ant features
Thanks dion, do you agree to the fixed now?
christoph