As I’m getting involved in the Maven2 core development, I’ll be writing down my experiencies, so they can be useful for other people.
Features of Maven2:
- Transitive dependency resolution, say projectA depends on projectB and projectB depends on projectC, then you just need to declare projectB dependency in projectA and projectC will be automatically discovered
- No more Jelly, you can use POJOs, they’re called MOJOs ;), it’s a funny name in spanish, also used in Austin Powers movie
- Promotes a standarised directory layout
- Allows a better repository layout, more scalable, and based on internet domain names
Resources of interest are:
- docs at codehaus, although they are a bit outdated
- Sources and core plugins are in Apache CVS
- Non core plugins are in Codehaus CVS
To build it you need to run the bootstrapping process, typing java -jar mboot.jar
in the maven-components dir, after creating a ~/.m2/override.xml
file that must contain the following entries:
<local> <repository>/path/to/m2/repository</repository> (required) <online>true</online> (optional) </local>
Alternatively, you can specify -Dmaven.repo.local=/path/to/m2/repository
. Maven2 will be installed in ~/m2
.
Good news about Jelly being gone. I think the idea of lightweight plugins is a great one though, so it might be worth investigating another scripting mechanism — maybe Javascript (through Rhino), Jython or BSF. (Would probably be willing to put some work toward Javascript…)
It will be possible to script plugins in maven 2:
http://marc.theaimsgroup.com/?l=turbine-maven-user&m=109717873721374&w=2