Search code examples
javaeclipsemaven-3birttycho

Building Eclipse BIRT from Source (Oxygen/4.7.0 Release)


I am trying to build Eclipse BIRT (Oxygen/4.7.0 Release). But I am having difficulties and unable to proceed.

Steps I used:

  1. Install Apache Maven 3.3.3 - since the build requires this version
  2. Cloned the birt repository from Github
  3. Checked out BIRT_4_7_0_Release_201706222054 tag
  4. Executed mvn -DskipTests package in the root folder

Repositories on my local machine:

  • I have a clean m2 local repository (nothing in the repository)
  • I do use Eclipse Oomph to install various IDE (not projects) so bundle pools are present on my machine

Environment:

  • I am using JDK 1.8 (build 144) on macOS (10.11.6).

Result:

Cannot resolve project dependencies:
[ERROR]   Software being installed: org.eclipse.birt.designer 4.7.0.qualifier
[ERROR]   Missing requirement: org.eclipse.birt.feature.group 4.7.0.qualifier requires 'org.eclipse.gef.feature.group 3.2.0' but it could not be found
[ERROR]   Cannot satisfy dependency: org.eclipse.birt.designer 4.7.0.qualifier depends on: org.eclipse.birt.feature.group 0.0.0
[ERROR]

Miscellaneous:

I also tried building for neon but that fails because the release milestones have moved and resolution fails (even after I change the release milestones URL).

Any help would be much appreciated. Thanks!


Solution

  • There are two separate issues in the build.

    Firstly, it seems that the latest release tagged BIRT_4_7_0_Release_201706222054 has URLs and a feature that are out-of-date (as of the date of this answer). Building this revision will fail.

    The solution is to build revision:

    Update repository URL post Oxygen (1b32db99608d028b2cfabf65aa4a34a2c7ff3359).

    Another option would be to cherrypick the following three fixes (all changes) on top of the release revision BIRT_4_7_0_Release_201706222054. This avoids all other changes that were made post Oxygen Release.

    • 1b32db99608d028b2cfabf65aa4a34a2c7ff3359
    • 92f2f74916bf6e2fa961285dcc0f5eaa7d2c50e2
    • eb8c612fc0ed0547601b5d1f9221755a44730abc

    The second problem is Maven related. The top-level POM.xml requires definition of a toolchains. This needs to be defined in ~/.m2/toolchains.xml file or specified on the command-line with --global-toolchains. you can read about this in the Maven documentation here.

    Lastly, the build requires Maven 3.3.3 as per Ben Gamble here. It did cause me a problem initially because I had 3.5.0 (prior to posting the question; mentioning this here for completeness).

    Hope this will help anyone having similar problems.