Maven Tools 4 Eclipse
Maven Tools 4 Eclipse (or m4e for short) is a set of tools to convert OSGi bundles into Maven artifacts.
You can find the source on http://git.eclipse.org/c/dash/org.eclipse.dash.m4e.tools.git/
How it works
Replace RUN below with java -jar org.eclipse.dash.mt4e-0.9.0-SNAPSHOT-jar-with-dependencies.jar
A simple workflow:
- Create a folder to work. Download the tool and put it into this folder. TODO I've asked to upload the tool on an Eclipse site; I'll post the link here. For the time being, you can build the tool from sources (see below).
- Download an Eclipse release from http://www.eclipse.org/downloads/ into a new folder downloads inside the work folder.
- Download the sources for the Eclipse release and/or other archives which contain Eclipse products or OSGi bundles.
- Import everything into a temporary Maven repo tmp/m2repo using RUN convert org.eclipse.dash:dependency-management:3.7.0 (you may want to tweak the version number)
- Check the report generated for any problems you may want to fix. Create a patch file (probably using the examples) to do that
- Repeat until you're happy with the results
- Upload the content of tmp/m2repo/ somewhere where Maven can find it (~/.m2/repository/ or your Maven proxy).
convert is actually a wrapper for these commands:
- Importing every archive in the folder downloads into a temporary Maven repo using RUN import archive
- Merge all repositories using RUN merge directories... tmp/m2repo
- The sources are in the wrong place. Fix that with RUN attach-sources tmp/m2repo
- Fix any know problems by applying the patches in the patches/ folder using the tool RUN apply-patches tmp/m2repo patches...
- Check the result with RUN analyze tmp/m2repo
- Create a POM with the version info to make sure your build picks the correct versions using the RUN dm tmp/m2repo groupId:artifactId:version
- If anything goes wrong, use RUN clean to clean up temporary files and start over.
Building From Source
- git clone git://git.eclipse.org/gitroot/dash/org.eclipse.dash.m4e.tools.git
- org.eclipse.dash.m4e.tools will be our work directory
- Download everything you will want and put it into the folder org.eclipse.dash.m4e.tools/downloads/
- Compile the code with Maven: mvn install
- See above how to use the tool
How do I import the result in a Nexus server?
It's very tedious to deploy the files one by one. Here is a recipe to mass-upload them:
- Create a "Hosted Repository" on Nexus
- Copy the files from tmp/m2repo/ into sonatype-work/nexus/storage/<name>/ where <name> is the name of the new repository.
- Open the Nexus UI in your web browser
- Login as admin
- Open the "Repositories" tab
- Right click on the hosted repository
- Select "Rebuild Metadata"
After that, Maven should be happy.
Biggest Issues Right Now
- The name m4e sucks. Suggestions?
- Find the time to create a repo with Eclipse 3.7
Old Python Version
You can find the original Python project on Github: https://github.com/digulla/org.eclipse.dash.m4e.tools/