Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

EclipseLink/Build/Tycho

< EclipseLink‎ | Build
Revision as of 15:01, 28 September 2011 by Eric.gwin.oracle.com (Talk | contribs) (Using Tycho with EclipseLink (2.4.0+))

Using Tycho with EclipseLink (2.4.0)

Tycho is a Maven plugin designed to generate OSGi bundles and Eclipse plugins. It's use is fairly transparent both in the automated system, and with the Eclipse IDE. However, this change was made primarily to move to a "manifest-first" build approach (the OSGi manifest files are parsed to determine dependencies and to build the software), this is a fundimental change from the previous methodology of building the software using predifined dependencies and classpaths, then generating an OSGi manifest and bundle post-compile. This paradym change will have profound impact upon development, as package development will no longer be divorced from Manifest maintenance. Also manifest issues will be more visible as they are used to build the product and any problems will be visible much sooner.

What changes?

Since Tycho is a Maven plugin, this change means adding Maven as a component of the build system. In general Maven approaches building quite differently from Ant. Rather than being a general "toolbox" like Ant, Maven is a "build framework" where one defines specifics of the project the the default build process. While much of the default assumptions could be overridden, doing so to conform to our existing processes would be counter-productive. However, much of our build involves processes that do not currently conform to Maven standards (Testing, EclipseLink jar from bundle generation, EclipseLink jar from bundle generation, Eclipse feature generation, P2 generation, publishing, etc). Therefore, we currently are only adopting Maven for the bundle generation portion of the build. This section is called by ant, which continues to provide the majority of the build infrastructure. However, doing so forces us to bypass much of the capabilities of Tycho (dynamic hierarchical generation of bundles into features published into a p2 and/or Maven repository). For this reason, among others, we are continuing to evaluate moving towards Maven as the primary build tool with subsections of the build calling out to Ant (testing).

Back to the top