Difference between revisions of "Building"

From Eclipsepedia

Jump to: navigation, search
(PDE Build)
m (Build Server)
(13 intermediate revisions by 6 users not shown)
Line 1: Line 1:
==summary==
+
==Summary==
  
This page is about building Eclipse- and RCP-based products (including Eclipse itself).
+
This page is about building Eclipse- and RCP-based products (including Eclipse itself). This document is focused on using [http://www.eclipse.org/pde/pde-build/ PDE Build] directly by Eclipse projects; work is currently underway to develop a [http://wiki.eclipse.org/Common_Build_Infrastructure Common Build Infrastructure] that should, in the long term, make the build process much easier.
  
 
==PDE Build==
 
==PDE Build==
  
[http://www.eclipse.org/eclipse/pde-build/ PDEB] is The Way to headlessly build Eclipse- and RCP-based products. The best currently available guide to PDEB is still Markus Barchfeld's [http://www.eclipse.org/articles/Article-PDE-Automation/automation.html Build and Test Automation for plug-ins and features], though it's getting a bit old (having been written for eclipse-3.0).  
+
PDE Build is The Way to headlessly build Eclipse- and RCP-based products. The [http://help.eclipse.org/ganymede/nav/4_2_0 online documentation] provides a good foundation of knowledge, but does fall short in on some specifics, including the use of [http://wiki.eclipse.org/Pack200 Pack200] and [http://wiki.eclipse.org/JAR_Signing JAR signing] using the Eclipse Foundation's certificate. This document addresses these issues.
 +
 
 +
The following guides are available:
 +
 
 +
----
 +
* PDE Build from Markus Barchfeld's [http://www.eclipse.org/articles/Article-PDE-Automation/automation.html Build and Test Automation for plug-ins and features]. It's getting a bit old (having been written for eclipse-3.0).
 +
 
 +
* The Eclipse IDE for Education (IDE4EDU) project's [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.soc/ide4edu/org.eclipse.soc.ide4edu.releng/?root=Technology_Project releng project] provides a <em>relatively simple</em> example of how PDE Build can be used to build, Pack 200, sign, and create an update site using the Eclipse Foundation's build server.
 +
 
 +
*  [http://www.vogella.de/articles/EclipsePDEBuild/article.html Eclipse Headless build with PDE Build ] - Tutorial by Lars Vogel based on Eclipse 3.4
 +
 
 +
 
 +
===Build Server===
 +
Eclipse projects can use the Eclipse Foundation's build server (build.eclipse.org) to run automated builds. If you're a committer with a shell account, you should already have access to the server.  If not, your project lead should send a note to [mailto:webmaster@eclipse.org the Eclipse Webmaster]. Once you have access to the build.eclipse.org server, you can move your build scripts to the 'shared' directory (i.e. <code>/shared/[top-level project]/[project]/[component]</code>). For example, the build scripts for the aforementioned IDE4EDU are run from the <code>/shared/technology/soc/ide4edu/releng</code> directory.  If this directory doesn't exist for your project, please ask the webmaster to create it for you.
 +
 
 +
====Hudson====
 +
 
 +
The Hudson build tool is now [https://hudson.eclipse.org/hudson available] .  Committers can login with their CVS/SVN credentials.
 +
 
 +
This Hudson install is being managed by members of the community in the same way that PlanetEclipse is.  If you want to start using Hudson to build your Eclipse.org project file a bug requesting a new build job under EclipseFoundation->Community and specify the Hudson component.
 +
 
 +
For more information, please see [[Hudson]].
  
 
===Ant===
 
===Ant===
  
Eclipse itself is using the PDE build infrastructure that it ships with the Plug-in Develeopment Environment. Ant is used to run the build, with adequate plug-points where in you can perform custom tasks such as instrumentation of code.
+
Eclipse itself is built using the PDE build infrastructure that it ships with the Plug-in Development Environment. Ant is used to run the build, with adequate plug-points where in you can perform custom tasks such as instrumentation of code.
  
 
To get comfortable with ant:-
 
To get comfortable with ant:-
Line 28: Line 49:
  
  
===versioning===
+
===Versioning===
  
 
Plugins (including features and fragments) must specify their own versions as well as the versions of their dependencies appropriately.
 
Plugins (including features and fragments) must specify their own versions as well as the versions of their dependencies appropriately.
  
====information====
+
====Information====
  
 
See the eclipse team's [http://www.eclipse.org/equinox/documents/plugin-versioning.html plugin-versioning guidelines]. You can also ask Pascal Rapicault or John Arthorne for their "Plug-in versioning" presentation.
 
See the eclipse team's [http://www.eclipse.org/equinox/documents/plugin-versioning.html plugin-versioning guidelines]. You can also ask Pascal Rapicault or John Arthorne for their "Plug-in versioning" presentation.
  
====tooling====
+
====Tooling====
  
 
Pascal Rapicault has created an application (org.eclipse.core.runtime.versionchecker.dependencyChecker) to "specify the ranges on all [your] required plug-ins."
 
Pascal Rapicault has created an application (org.eclipse.core.runtime.versionchecker.dependencyChecker) to "specify the ranges on all [your] required plug-ins."
 +
 +
====Cross-platform build====
 +
 +
Eclipse RCP applications can be cross-built for several platforms using any platform on which eclipse runs. You just need to install the RCP delta pack in your Target Platform. If you dont know what a Target Platform is, then just intall the RCP delta pack in your eclipse installation directory. To download the delta pack as per '''your''' platform, visit http://download.eclipse.org/eclipse/downloads/. Click the Release version that you are targeting, then search for 'delta'.

Revision as of 17:50, 16 November 2010

Contents

Summary

This page is about building Eclipse- and RCP-based products (including Eclipse itself). This document is focused on using PDE Build directly by Eclipse projects; work is currently underway to develop a Common Build Infrastructure that should, in the long term, make the build process much easier.

PDE Build

PDE Build is The Way to headlessly build Eclipse- and RCP-based products. The online documentation provides a good foundation of knowledge, but does fall short in on some specifics, including the use of Pack200 and JAR signing using the Eclipse Foundation's certificate. This document addresses these issues.

The following guides are available:


  • The Eclipse IDE for Education (IDE4EDU) project's releng project provides a relatively simple example of how PDE Build can be used to build, Pack 200, sign, and create an update site using the Eclipse Foundation's build server.


Build Server

Eclipse projects can use the Eclipse Foundation's build server (build.eclipse.org) to run automated builds. If you're a committer with a shell account, you should already have access to the server. If not, your project lead should send a note to the Eclipse Webmaster. Once you have access to the build.eclipse.org server, you can move your build scripts to the 'shared' directory (i.e. /shared/[top-level project]/[project]/[component]). For example, the build scripts for the aforementioned IDE4EDU are run from the /shared/technology/soc/ide4edu/releng directory. If this directory doesn't exist for your project, please ask the webmaster to create it for you.

Hudson

The Hudson build tool is now available . Committers can login with their CVS/SVN credentials.

This Hudson install is being managed by members of the community in the same way that PlanetEclipse is. If you want to start using Hudson to build your Eclipse.org project file a bug requesting a new build job under EclipseFoundation->Community and specify the Hudson component.

For more information, please see Hudson.

Ant

Eclipse itself is built using the PDE build infrastructure that it ships with the Plug-in Development Environment. Ant is used to run the build, with adequate plug-points where in you can perform custom tasks such as instrumentation of code.

To get comfortable with ant:-

http://ant.apache.org/manual - If you are new to ant

Eclipse provides a very usable interface for writing ant files(yes, with auto-complete and the stuff) as well as run the ant files from within the IDE. But, for headless(without UI, from command line) builds, you'll need to use the antRunner application provided by eclipse. For more help, peek into the help documentation of eclipse that you are using.

Plugin Builder plugin

http://www.pluginbuilder.org - Something to make your life even easier

You might get stuck nowhere:-

https://bugs.eclipse.org/bugs/show_bug.cgi?id=87151

https://bugs.eclipse.org/bugs/show_bug.cgi?id=139481


Versioning

Plugins (including features and fragments) must specify their own versions as well as the versions of their dependencies appropriately.

Information

See the eclipse team's plugin-versioning guidelines. You can also ask Pascal Rapicault or John Arthorne for their "Plug-in versioning" presentation.

Tooling

Pascal Rapicault has created an application (org.eclipse.core.runtime.versionchecker.dependencyChecker) to "specify the ranges on all [your] required plug-ins."

Cross-platform build

Eclipse RCP applications can be cross-built for several platforms using any platform on which eclipse runs. You just need to install the RCP delta pack in your Target Platform. If you dont know what a Target Platform is, then just intall the RCP delta pack in your eclipse installation directory. To download the delta pack as per your platform, visit http://download.eclipse.org/eclipse/downloads/. Click the Release version that you are targeting, then search for 'delta'.