Skip to content
This repository has been archived by the owner on May 18, 2020. It is now read-only.

Architecture

J. T edited this page Feb 24, 2017 · 1 revision

Basic compilation architecture

basic 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.