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

WTP/Build/CBI Build

< WTP‎ | Build

This document describes how to build the various projects in Web Tools w/ Maven 3.5.

For the most up to date, see build instructions, see also README.


Pre-requisites

  • git installed and configured to work with gerrit
  • maven 3.5 installed and configured
  • JDK 1.8


Note: for true completeness, you may also want to install JDK 1.4, 1.5, 1.6, 1.7, 1.8, 9, 10, 11, etc.

See section below about toolchains to enable these when building.

Build a series of individual projects

Only care about building webtools.webservices? Now you don't have to rebuild everything upstream in WTP first!

See README

Build everything in one operation (DEPRECATED)

Maybe you DO want to build all 8 projects plus the releng stuff. Here's how.

See README-deprecated

Git clone the aggregator repo w/ submodules

The repo for WTP's aggregator can be viewed here:

   http://git.eclipse.org/c/webtools/webtools.releng.aggregator.git/

You can clone the repo by running:

    git clone --recursive git://git.eclipse.org/gitroot/webtools/webtools.releng.aggregator.git

Individual Bundle Build

Whichever approach used above, you can also build individual bundles instead of the whole project. This specially useful for committers to test the compilation of their components without going through the whole product build process. The CI profile will resolve your local changes against the latest CI builds of the upstream WTP projects. NOTE: It will also allow resolving against DOWNSTREAM WTP repos too, so be careful to not introduce circular dependencies!

  • Navigate to the plugin or feature folder you want to build
  • Launch the individual build command:
mvn -PCI clean verify

Build WTP with Toolchains

If you want to run a build against old JDKs, here's how it's done in Jenkins.

Setup

In order to build WTP you are required to setup BREE libraries. This means configuring a toolchains.xml file in your ~/.m2/toolchains.xml file.

Specifically for J2SE-1.4 you will require a copy of IBMJava2-142-SR13FP10.

The one I'm using is as follows:

<toolchains>
  <toolchain>
    <type>jdk</type>
    <provides>
      <id>J2SE-1.4</id>
    </provides>
    <configuration>
      <jdkHome>/opt/ibm/IBMJava2-142-SR13FP10/jre</jdkHome>
    </configuration>
  </toolchain>
  <toolchain>
    <type>jdk</type>
    <provides>
      <id>J2SE-1.5</id>
    </provides>
    <configuration>
      <jdkHome>/opt/oracle/jdk1.5.0_22/jre</jdkHome>
    </configuration>
  </toolchain>
  <toolchain>
    <type>jdk</type>
    <provides>
      <id>JavaSE-1.6</id>
    </provides>
    <configuration>
      <jdkHome>/opt/oracle/jdk1.6.0_45/jre</jdkHome>
    </configuration>
  </toolchain>
  <toolchain>
    <type>jdk</type>
    <provides>
      <id>JavaSE-1.7</id>
    </provides>
    <configuration>
      <jdkHome>/opt/oracle/jdk1.7.0_25/jre</jdkHome>
    </configuration>
  </toolchain>
  <toolchain>
    <type>jdk</type>
    <provides>
      <id>JavaSE-1.8</id>
    </provides>
    <configuration>
      <jdkHome>/opt/oracle/jdk1.8.0_112/jre</jdkHome>
    </configuration>
  </toolchain>
</toolchains>

Build

To build using the above toolchains enabled, use:

    mvn clean verify -Pbree-libs


Modifying the Base Repository

The base repository is the place from where all the WTP dependencies for the individual build will be pulled, in case you want to test the build against a different base repository (by default, it is the latest Integration build which is refreshed together with each promotion):

  • Navigate to webtools.releng.aggregator/wtp-parent/pom.xml.
  • Look for <webtools.buildSite>
  • Update with the p2 repository you want to use as base.

NOTE: It is expected that you use one of the online WTP p2 repositories, and those contain repository and repositoryunittests directories. So, if you want use a different one the <webtools.buildSite>, <webtools.repository> and <webtools.testsRepository> must be updated accordingly.

  • Save the changes.

References

Back to the top