Maven
Each of Maven's features needs to be compared against different products as it encompasses a number of pieces of functionality. It's also worth noting that some of these tools could be integrated into Maven via plugins. (For completeness, Maven 3/Aether and Maven Artifact Resolver Ant Tasks/Aether Ant Tasks must be added to the comparison.)
Build Tools
Should compare Ant, Maven 1.x, Maven 2.x, make
Dependency Management
| Maven 2.x | Maven 2.x Ant Tasks | Ivy | Maven 1.x |
---|---|---|---|---|
Transitive dependencies | ||||
Dependency ranges |
|
| ||
Version comparison |
|
| ||
Conflict Resolution |
|
| ||
Snapshots |
|
|
| |
Profiles |
|
|
| |
Scope |
|
| ||
Non-java dependencies |
| |||
Filtering |
|
|
| N/A |
Multiproject |
|
| ||
System scoped (tools.jar) |
|
| ||
Dependency reports |
|
| ||
Eclipse plugin |
|
| ||
IDEA plugin |
|
| ||
NetBeans plugin |
|
| ||
Eclipse .classpath generation | ||||
IDEA .iml generation | ||||
NetBeans project generation | ||||
Deployment |
|
|
| |
Mirrors |
|
| ||
Maven 1.x Repository (non-transitive) | ||||
Maven 2.x Repository (transitive) | ||||
Ivyrep (transitive) | ||||
Multiple repository support |
|
|
| |
Configurable repository layout |
| Maven 1.x Repository | Maven 2.x Repository | Ivyrep |
---|---|---|---|
Size | 8000+ | 8000+ | 30 |
Immediate Synchronize of OSS Releases | |||
Artifacts | |||
User uploads to central repository | |||
Open sandbox repository |
Site Management
| Maven 2.x | Maven 1.x | Anakia |
---|---|---|---|
Plain text input | |||
XDoc input | |||
Docbook input | |||
XHTML input | |||
FAQ input | |||
Confluence input |
| ||
XHTML output | |||
PDF output |
| ||
Reporting integration | |||
Streaming | |||
Skinnable |
|
| |
Furniture customisation | |||
Breadcrumbs |
3 comments
Xavier Hanin
A very detailed comparison, interesting to see.
But the few corrections/details about ivy where finally too long to be posted as a comment, so they can finally be found on my weblog: http://jroller.com/comments/xavierhanin?anchor=maven_features_comparison
Brett Porter
Incorporated all these changes.
Gilles Scokart
The comparaison is rather old, but still mostly valid, except about the scope : Ivy has a very flexible way to define scopes (called configurations). You can define yourself the transitvity, whe scope that includes each other, etc. You can define compile, runtime, test scope, or any kind of scope you can imagine.
Also, Ivyrep doesn't exist anymore.