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

Difference between revisions of "EclipseLink/Build/NextGen"

(Results of preliminary investigations)
(Results of preliminary investigations)
Line 52: Line 52:
 
| Maven 2
 
| Maven 2
 
| Absolute Dependency stability (reproducability)
 
| Absolute Dependency stability (reproducability)
| Complete system rewrite, Non-OSGi aware, Not full solution? "Provisioning, building, testing, publishing"
+
| Complete system rewrite, Non-OSGi aware, Not full solution? "Provisioning, building, testing, publishing" only provides 2-4, Maven 3 coming
 
|
 
|
 +
|-
 +
| Tycho
 +
| Eclipse plugin to use Maven build, p2 aware, Maven2 and Maven3 aware, Collaboration between Maven and P2 teams
 +
| Incubation, Requires interaction with multple teams |
 +
|-
 
|}
 
|}

Revision as of 12:44, 25 November 2010

NextGen Build Investigation

Results of preliminary investigations

In investigating solutions that meet the requirements outlined, many strengths and weaknesses of existing systems were uncovered. Below is a summary of each system as I understand it currently.

- The current build system, based upon Ant running standalone, does not utilize any of the existing PDE settings configured for use within the eclipse IDE. This was intentional, and has strengths and weaknesses. First, it allows the 'official' builds to be completely independent of any IDE, or development tooling, since it relies soley upon ANT and the JDK within the OS environment. However, it also means that any development builds in the IDE are not reflective of the true 'state of the project'. In addition, most advanced functionality provided by the IDE needs to either be emulated, or duplicated by the build system.

- PDE (Plugin Development Platform) takes care of many OSGi related build and dependency issues, but its scope is limited. It is aware of zips and jars, but was not intended to be run outside an the Eclipse IDE.

- PDEBuild has been created to extend PDE functionality to these areas, and allow PDE to be used 'headlessly' (without a gui), but has similar drawbacks to Ant alone, in that the entire build is separate from the IDE - though it is much closer. It also has several hard-coded project assumptions.

- Athena is an Eclipse build tool that utilizes PDE and PDEBuild to handle the project setup portion, and drive automation.

- Buckminster is another build tool that has come into use recently (Ganymede/Galileo) at Eclipse. It is tightly integrated with several Eclipse technologies - P2, PDE, Equinox, and others as well as integrating with ANT. It was intended to provide a system that could be used by development during development, that would also perform the necessary tasks of provisioning, building, testing, and publishing automatically during the other phases of the development cycle.

- B3 is an iteration upon Buckminster. Refining what was learned and strengthening its deficiencies. It is, however, in incubation and I have been unable to evaluate its capabilites.

- Maven is a build tool intended to manage complex dependencies. It was initially created before OSGi, and in some ways competes with it. It also operates in the same domain as ANT, and its use would replace the existing system in entirety.

-Tyco is a set of MAven extensions designed to allow OSGi-based dependency resolution with a maven build.

Below is a summary table:

System Pros Cons Comments or Wiki link
Ant flexable Not designed for OSGi, Needs extension, High Maintenance cost, constantly 'reinventing the wheel'
PDE Build Less extenstion needed than ant, get many features now have to 'hack' Complex, tied to Eclipse, uses own implimentation of ant, may still need extensions, high maintenance cost, IDE/headless build separate systems, tied to someone else's process, our versioning will need to change
Buckminster Flexible, Designed to provide dynamic dependency mapping, is end-to-end build integration system. closed or slowing development?, more tied to Eclipse than PDEBuild, Complex - uses multible languages (learning cost), Collaboration between Maven and P2 and Buckminster teams
B3 Next Gen of Buckminster Incubation, Collaboration between Maven and P2 and Buckminster teams
Maven 2 Absolute Dependency stability (reproducability) Complete system rewrite, Non-OSGi aware, Not full solution? "Provisioning, building, testing, publishing" only provides 2-4, Maven 3 coming
Tycho Eclipse plugin to use Maven build, p2 aware, Maven2 and Maven3 aware, Collaboration between Maven and P2 teams

Back to the top