Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

PDEBuildTutorial

Outline of the tutorial for eclipsecon 2007

1) Overview - What does PB do? Why to use PB? - Overview of the main functionality - Overview of the major steps handled by the build


2) Scenario driven presentation of the PB features 2.a) The simplest build

In this section we demystify the complexity: within a few minutes you can be up and running. The demonstration is done from scratch in front of the people. For this simple case the code is local.
We describe what is being done, and explain the underlying key concepts (locations, properties file, etc...).
For setting up this example we use the templates provided with PDE Build.
What is covered in this section:
  - shape of folders on disk (locations: baselocation, build direc, builder)
  - templates
  - simple properties to setup
  - relationship build.properties / build.xml
  - generated files and how do they relate (ordering - sequence diagram)
  - setting up the base
Note on the example: it contains qualifier, because it is a good practice and will be useful later on.

EXERCISE!!!! - do the steps as we go during the explanation. We provide the source code (simple RCP app) with a feature... They set up the build around that.

1h15.


2.b) Building an RCP product

In this case we are showing how to perform a build from a .product file. 
This allows us to present the support for:
  - multiple platforms
  - product build.xml
  - controlling the output (naming the file and archive format)
  - dealing with root files
  - delta pack

EXERCISE!!! getting the build from the product file


2h00

2h30


2.d) Extracting out part of our product from the RCP product archive

  - extract something out of our product.
  - this shows how to use the packager.

EXERCISE!!!



3) Building in the real life 2.c) Getting the source from a repository and setting up the target

 Present the concept of map files.
 1) Fetching source (CVS, GET, COPY) + extensibility
      basic properties
      introduce the concept of map files and show that the tag is used to replace the qualifier
 2) Fetching source from another repo plugged through the extension point
      modifying the customTargets.xml.
      What is the custom target used for?
 3) Fetching the base
    Using the default mechanism and see how it can be done in the customTargets.


3) Setting up the build infrastructure

 Kim talk from 2006

Releng tools !!!!

EXERCISE!!!! create a map file and commit it to CVS, and update the scripts...


Extra notes

=
this section allows us to cover more advanced topics (to be picked from the topics section below), talks a little bit of good practices and recommended infrastructure.
other options of the customTargets.xml
customCallBacks in the plugins / features


-Debugging a build -The devil is in the detail. - Id does not have to map project in the repo

- Building from CVS as an exercise.

  - writing the map files

- - Why build automation is good.

  - What means full automation.



List of problems

===========

tag is wrong file not found plugin not found

 manifest

path length errors no code in the problem reading the output format circularity problem changes in version range in dependencies included features not in compile order typos in feature.xml or manifests in ids jars preexist in source tree - no compile (runtime errors or strange compile errors) network failures and problems fetching/partial fetch ANT!!!


Tips and tricks

==========

- how to debug the whole build - building faster - organizing features - do not using the recommended shape - multiple platform - generating features and plugins in the IDE - ordering features

Topics

==========

- setting up JREs - versionning feature version suffixes, good practices, properties files with the actual versions being used, input files. - source features - feature ordering / dependencies - output format management

	pack200, signing, jnlp, update, 
       delta packs, grouping
       jar / unjar'ed

- building doc

  - customCallBacks?

- building the help - additional jars - disconnect of the file and UI. - custom Target for plugins and features (using the doc as an example) - build infrastructure - use Java 5 - controlling compilation - controlling the shape (jar / foldeR) - update jars

FetchFactory.

   optimizing build with pacakger?

Back to the top