-
Notifications
You must be signed in to change notification settings - Fork 5
Architecture
This picture shows the basic architecture for compiling projects.
Everything usually starts with an eclipse plugin project, which you can see in the center of the diagram. In eclipse dependencies are usually specified per project in the MANIFEST.MF
. Eclipse offers nice support dependency definition in manifest files and that's why we prefer defining dependencies there.
But gradle can not handle dependency definitions in MANIFEST.MF files at all (at runtime). That's where the plugin gradle-build
comes into place. It reads the manifest file and adds them to the set of gradle compile dependencies. That's enough to get your dependencies into gradle.
But then it get's a bit more complicated. Eclipse usually uses P2-Repositories
to resolve dependencies from and that is the only way possible. Gradle supports multiple repsository formats but not p2. So you have eclipse based dependencies in p2 repositories and other dependencies coming from m2 repositories. But both tools can not be incorporated with each other.
That's why we build the gradle.mavenize
and the gradle.p2
plugin. The gradle.mavenize
plugin allows you to transform an existing p2 repository into a m2 repository. gradle.p2
offers you the other way around so you can use m2 dependencies in eclipse. With both tools in hand you are able to create a m2 repository and a p2 repository with the exact same content which can be used by gradle and eclipse.
That's basically all you need to incorporate eclipse and gradle for rcp based projects.