How to set up and run
     PDE build
                             Owen Ou
                         @JingwenOwenOu
 http://owenou.com/blog/2010/09/19/how-to-set-up-and-run-pde-build/
What’s PDE headless
           build?
•   automation of plug-ins build process

•   a bundle that can be executed through command
    line => “headless”

•   can also manually build it with Eclipse UI =>
    “head”

•   demo

•   source + target platform + build.properties =>
    PDE builder => generated build.xml => run

•   Maven Tycho (internally running PDE build)
Pre-requirement of
        PDE build
• three folders:
 • build directory
 • target platform
 • build configuration file
Build directory


• where the build actually happens
• where you put your source code
Build directory
- build_directory
  - plugins
     - plugin_to_build_a
     - plugin_to_build_b
     - ...
  - features
Target platform
• target platform is a set of pre-built plug-ins
  and features
• the “dependencies”
• your plug-ins/features build and run against
  the target platform (both compile time and
  run time)
• demo
Target platform
- target_platform
  - plugins
     - org.eclipse.core.runtime
     - org.eclipse.ui
     - ...
  - features
Build configuration file

• build.propeties
• template in #{eclipseInstall}/plugins/
  org.eclipse.pde.build_#{version}/templates/
  headless-build/build.properties
• demo
Build configuration file

- build_config
  - build.properties
Running PDE build
    > java -jar #{eclipseInstall}/plugins/org.eclipse.equinox.launcher_#{version}.jar

           -application org.eclipse.ant.core.antRunner

           -buildfile #{eclipseInstall}/plugins/org.eclipse.pde.build_#{version}/scripts/build.xml

           -DbuildDirectory=#{path_to_the_build_directory}

           -DbaseLocation=#{path_to_the_target_platform_directory}

           -Dbuilder=#{path_to_the_build_configuration_directory}

•      -application => the org.eclipse.core.runtime.applications extension point, application entry
       point

•      -buildfile => productBuild.xml to control pre-build and post-build phases

•      -Dbuilder => optional if it exists in current folder
Demo: FITpro
     https://fitpro.svn.sourceforge.net/svnroot/
                 fitpro/Eclipse/trunk/
- build_directory          - target_platform                     - build_config

  - plugins                  - plugins                             - build.properties

     - plugin_to_build_a        - org.eclipse.core.runtime

     - plugin_to_build_b        - org.eclipse.ui

     - ...                      - ...

  - features                 - features

     - feature_to_build         - org.eclipse.equinox.launcher

     - ...                      - ...
Summary
•   What have we done?

    •   set up directory structure (plugins/features)

        •   plugins/features to build

        •   target platform

    •   build.properties

•   Equinox’s convention of managing components
Further readings:
• http://owenou.com/blog/2010/09/19/how-
  to-set-up-and-run-pde-build/
• http://help.eclipse.org/helios/index.jsp?
  topic=/org.eclipse.pde.doc.user/tasks/
  pde_p2_integration.htm
• PDE build with Rake: https://
  fitpro.svn.sourceforge.net/svnroot/fitpro/
  Eclipse/trunk/

Pde build

  • 1.
    How to setup and run PDE build Owen Ou @JingwenOwenOu http://owenou.com/blog/2010/09/19/how-to-set-up-and-run-pde-build/
  • 2.
    What’s PDE headless build? • automation of plug-ins build process • a bundle that can be executed through command line => “headless” • can also manually build it with Eclipse UI => “head” • demo • source + target platform + build.properties => PDE builder => generated build.xml => run • Maven Tycho (internally running PDE build)
  • 3.
    Pre-requirement of PDE build • three folders: • build directory • target platform • build configuration file
  • 4.
    Build directory • wherethe build actually happens • where you put your source code
  • 5.
    Build directory - build_directory - plugins - plugin_to_build_a - plugin_to_build_b - ... - features
  • 6.
    Target platform • targetplatform is a set of pre-built plug-ins and features • the “dependencies” • your plug-ins/features build and run against the target platform (both compile time and run time) • demo
  • 7.
    Target platform - target_platform - plugins - org.eclipse.core.runtime - org.eclipse.ui - ... - features
  • 8.
    Build configuration file •build.propeties • template in #{eclipseInstall}/plugins/ org.eclipse.pde.build_#{version}/templates/ headless-build/build.properties • demo
  • 9.
    Build configuration file -build_config - build.properties
  • 10.
    Running PDE build > java -jar #{eclipseInstall}/plugins/org.eclipse.equinox.launcher_#{version}.jar -application org.eclipse.ant.core.antRunner -buildfile #{eclipseInstall}/plugins/org.eclipse.pde.build_#{version}/scripts/build.xml -DbuildDirectory=#{path_to_the_build_directory} -DbaseLocation=#{path_to_the_target_platform_directory} -Dbuilder=#{path_to_the_build_configuration_directory} • -application => the org.eclipse.core.runtime.applications extension point, application entry point • -buildfile => productBuild.xml to control pre-build and post-build phases • -Dbuilder => optional if it exists in current folder
  • 11.
    Demo: FITpro https://fitpro.svn.sourceforge.net/svnroot/ fitpro/Eclipse/trunk/ - build_directory - target_platform - build_config - plugins - plugins - build.properties - plugin_to_build_a - org.eclipse.core.runtime - plugin_to_build_b - org.eclipse.ui - ... - ... - features - features - feature_to_build - org.eclipse.equinox.launcher - ... - ...
  • 12.
    Summary • What have we done? • set up directory structure (plugins/features) • plugins/features to build • target platform • build.properties • Equinox’s convention of managing components
  • 13.
    Further readings: • http://owenou.com/blog/2010/09/19/how- to-set-up-and-run-pde-build/ • http://help.eclipse.org/helios/index.jsp? topic=/org.eclipse.pde.doc.user/tasks/ pde_p2_integration.htm • PDE build with Rake: https:// fitpro.svn.sourceforge.net/svnroot/fitpro/ Eclipse/trunk/