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.
DTP Releng Instructions
Contents
How to Build DTP from CVS
This page mainly decribes how to set up headless PDE build system for DTP and start the build. Since the build server is a Linux server, below instructions are based on Linux environment.
Prerequisites
1. CVS version 1.10 or higher.
2. 1.4.2 level JDK. (DTP 1.6 uses Java compiler compliance level 1.4 .)
3. Info-Zip zip and unzip.
4. org.eclipse.releng.basebuilder.
5. org.eclipse.datatools.releng.builder.
6. Eclipse 3.3.2 SDK
7. EMF 2.2(emf+sdo)
8. GEF 3.3
Setup
1. Add the zip, unzip, tar, gzip and cvs executables to your path as required.
2. Add the jre/bin directory of the installed JDK to your path.
3. Check out org.eclipse.releng.basebuilder and org.eclipse.dtp.releng.builder into local server.
We recommend to use tagged version of org.eclipse.releng.basebuilder. The HEAD version is not stable and may have changes which will lead to build failure. The examples below are tested with tag version vI20070209-1006
4. Create a new directory as baseLocation.
5. Extract Eclipse SDK, EMF, GEF into baseLocation. The root folder should be plugins/ and features/.
Start the Build
cd to org.eclipse.dtp.releng.builder directory and execute the following command to start the build
./bootstrap.sh N
This shell script actually excutes below command, which will invode the top-level build script buildAll.xml:
buildCommand="$antRunner -q -buildfile buildAll.xml $mail $testBuild $compareMaps
-DmapVersionTag=$mapVersionTag -DpostingDirectory=$postingDirectory
-Dbootclasspath=$bootclasspath -DbuildType=$buildType -D$buildType=true
-DbuildId=$buildId -Dbuildid=$buildId -DbuildLabel=$buildId -Dtimestamp=$timestamp $tagMaps
-DJ2SE-1.5=$bootclasspath_15 -DlogExtension=.xml $updateSite
-Djava15-home=$bootclasspath_15 -DbuildDirectory=/home/adb/releng.dtp/src
-DbaseLocation=/home/adb/releng.dtp/baseLocation
-DgroupConfiguration=true -DjavacVerbose=true
-Dbasebuilder=/home/adb/releng.dtp/org.eclipse.releng.basebuilder
-Djvm15_home=$jvm15_home -DmapTag.properties=/home/adb/releng.dtp/org.eclipse.datatools.releng.builder/mapTag.properties
-Dbuild.date=$builddate -Dpackage.version=1.6M6-$timestamp
-DmapCvsRoot=:ext:anonymouse@dev.eclipse.org:/cvsroot/datatools
-DmapVersionTag=HEAD -DjavacTarget=1.4 -DjavacSource=1.4"
Note that, before starting the build, environment variable in bootstrap.sh and build.properties need to be set correctly according to your local server. Please seeAnt Properties Settings part.
Top-level Build Script Analysis
Let's take a look at the top-level buildAll.xml which drives the whole build actually.
<target name="main" depends="init"> <antcall target="buildDtpSdkAllFeature"/> <antcall target="buildDtpEnablementAllFeature"/> <antcall target="integrateDtpFeatures"/> <antcall target="Package"/> <antcall target="GenerateUpdateSite"/> </target>
Target buildDtpSdkAllFeature will build the component dtp.sdk.all. The fake top-level feature org.eclipse.datatools.sdk-all.feature will drive the building of this component.
<target name="buildDtpSdkAllFeature"> <ant antfile="build.xml" dir="${basedir}"> <property name="component" value="${eclipse.build.configs}/dtp.sdk.all" /> </ant> </target>
Target buildDtpEnablementAllFeature will build the component dtp.enablement.all. The fake top-level feature org.eclipse.datatools.enablement-all.feature will drive the building of this component.
<target name="buildDtpEnablementFeature"> <ant antfile="build.xml" dir="${basedir}"> <property name="component" value="${eclipse.build.configs}/dtp.enablement" /> </ant> </target>
Target integrateDtpFeatures will unzip the output packages of above two component's build into same directory.
Target Package will generate the final delivery dtp package: sdk package and non-sdk package, including repackage the source plugins.
Target GenerateUpdateSite will generate the update site.
Component Introduction
From a user's perspective, DTP has two top level features: the SDK and Enablement. From a build perspective, Enablement depends on most of what is contained in the SDK feature.
So we have two component in org.eclipse.datatools.releng.builder and the build order is dtp.sdk.all -> dtp.enablement.all.
Component | Description |
---|---|
dtp.sdk.all |
This component will build the fake top-level feature org.eclipse.datatools.sdk-all.feature. It includes the sub-feature: org.eclipse.datatools.sdk.feature org.eclipse.datatools.sdk-all.feature will be deleted during packaging process. |
dtp.enablement.all |
This component will build the fake top-level feature org.eclipse.datatools.enablement-all.feature It includes the sub-feature: org.eclipse.datatools.enablement.feature org.eclipse.datatools.enablement-all.feature will be deleted during packaging process. |
Ant Properties Settings
The following properties are pre-defined in the build.properties file for the specified component. They can be overridden by setting them at the command line at build time or by changing them directly in the component's build.properties file. Value set in build.properties will be overriden by the one set in command line (or in bootstrap.sh).
Name | Description |
---|---|
baseos,basews,basearch |
The os, ws and arch values of a pre-built eclipse component being compiled against. Currently DTP use *,*,* |
baseLocation |
A directory separate from buildDirectory which contains pre-built plugins and features against which to compile. The basedirectory must not contain any features, plugins or fragments which are already or will be located in the buildDirectory (see below). |
bootclasspath |
Sets the value for the attribute "bootclasspath" in calls to the Ant <javac> task in a plugins' build.xml. Default set to ${java.home}/lib/rt.jar. |
buildDirectory |
The absolute path to a working directory where the source for the build will be exported, where scripts will be generated and where the end products of the build will be located. On Windows systems, the path length should not exceed thirty characters due to path length limitations when compiling some classes in Eclipse. |
buildId |
The build name. Default set to timestamp. |
buildLabel |
Refers to the name of the directory which will contain the end result of the build. Default set to v${buildId}, ie."vbuild". This directory will be created inside the location specified by the ${buildDirectory} property. |
buildType |
Letters I, N, S, R or M are used in Eclipse builds to identify builds as being one of the following:
|
configs |
DTP use *,*,* in the dtp builder, which indicates platform independence. |
javacDebugInfo |
Sets the value for the attribute "debug" in calls to the Ant <javac> task in a plugins' build.xml. Default set to on. |
javacFailOnError |
Sets the value for the attribute "failonerror" in calls to the Ant <javac> task in a plugins' build.xml. Build will continue even if there are compilation errors when this is set to false. |
javacSource |
Sets the value for the attribute "source" in calls to the Ant <javac> task in a plugins' build.xml. Default set to 1.3. DTP set both javacSource and javacSource to 1.4 |
javacTarget |
Sets the value for the attribute "target" in calls to the Ant <javac> task in a plugins' build.xml. Default set to 1.1. DTP set both javacSource and javacTarget to 1.4 |
javacVerbose |
Sets the value for the attribute "verbose" in calls to the Ant <javac> task in a plugins' build.xml. Default set to true. |
mapVersionTag |
Sets the tag attribute in a call to the Ant <cvs> task to check out org.eclipse.datatools.releng, the map file project on dev.eclipse.org used in the build.
Can be set to a specific tag to download the map files used for a previous integration build. Typically, these tags are in the form "r16_<date/timestamp>" for example "r16_v20030711-0800" will checkout the map files used to run the integration at the specified date/time. |
zipargs |
Arguments to send to the zip executable. ie. zipargs=-y on Linux preserves symbolic links. |
Generating Source Features and Plugins
We use PDE tools to generate source features and source plugins automatically. Please click here to see how this works.
build.properties of sdk-all.feature and enablement-all.feature has contained the setting for generating source features.
Build Server Directory Structure
Path | Purpose/Description |
---|---|
/home/adb/releng.dtp/ |
Working directory of daily build |
/home/adb/releng.dtp/src/maps |
location to store Map files |
/home/adb/releng.dtp/src/plugins |
location to store DTP plugins checked out from CVS |
/home/adb/releng.dtp/src/features |
location to store DTP features checked out from CVS |
/home/adb/releng.dtp/org.eclipse.releng.basebuilder |
where PDE basebuilder locates |
/home/adb/releng.dtp/org.eclipse.dtp.releng.builder |
where org.eclipse.dtp.releng.builderlocates |
/home/adb/releng.dtp/output |
the output directory where exported and packaged zip can be found |
/home/adb/releng.dtp/baseLocation |
baselocation where Eclipse platform/EMF/GEF prerequisites locate |
/home/adb/releng.dtp/baseLocation/plugins |
where prerequisites plugins locate |
/home/adb/releng.dtp/baseLocation/features |
where prerequisites features locate |