Skip to content
This repository has been archived by the owner on Mar 17, 2022. It is now read-only.

Convert Eclipse p2 tycho repositories to Maven Notes

Leon Blakey edited this page Aug 17, 2015 · 2 revisions

From Issue #1, it would be nice to have JFace and SWTBot in this repository. However they have dependencies that must be resolved with something. A hacky bash script will work for now, but a more permanent solution is to use Eclipse's existing p2 system. Long term this might let us easily mirror other Eclipse projects

This page document's that attempt

##Notes

Useful links

Useful commands

##Potential solutions

  • eclipse:to-maven goal from https://maven.apache.org/plugins/maven-eclipse-plugin/to-maven-mojo.html

    Repackages all the bundles from a Eclipse installation/SDK folder into your local maven repository. Doesn't have a whole lot of configuration options

  • bnd - http://bndtools.org/

    Its used for OSGi building from Maven, how does it get its dependencies? Are they stored in the user's m2 repo?

  • p2-scripts project: https://github.com/briandealwis/p2-scripts

    Potentially useful p2 bash scripts

  • p2 ant tasks: http://help.eclipse.org/juno/topic/org.eclipse.platform.doc.isv/guide/p2_repositorytasks.htm

    Another view of their API

  • Write custom bash script to download, repackage, and generate pom's for all the dependencies and packages.

    • Pros
      • Can do this now without having to figure out how extract them from p2
      • Doesn't sound too mentally difficult
    • Cons
      • Time consuming to do for every dependency for every existing supported release
      • Time consuming to do for every new eclipse release, especially the dev-releases repository
      • Most likely will be fragile as future p2/tycho versions could change their internal format
  • Write custom Java CLI app that calls the p2, tycho, and Maven API's directly

    • Pros
      • Gives 100% control of the whole process with a lot less magic
    • Cons
      • Takes even more time to write against the internal Java API
      • More complicated than a bash script
      • The internal API might change more in the future than the external CLI api

##Dead ends

Clone this wiki locally