Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

MemoryAnalyzer/Building MAT With Tycho

< MemoryAnalyzer
Revision as of 03:18, 26 June 2015 by Krum.tsvetkov.sap.com (Talk | contribs) (Prerequisites)

Introduction

This page describes how Memory Analyzer can be built using Maven/Tycho. The build will

  • build all bundles and features
  • execute all tests
  • (optional) run FindBugs static checks
  • produce a p2 repository with MAT features
  • produce RCPs for different platforms
  • sign and upload the produced artifacts (when executed on the Eclipse Hudson server)

Prerequisites

Git

MAT sources are in a Git repository, therefore you need a git client. Have a look at MemoryAnalyzer/Contributor_Reference#Get the Source

Maven Installation

The Memory Analyzer build requires a Maven 3.0.* installation. It is already present on the Hudson server at Eclipse. For local build one can download it from here.

Proxy Settings

If you need to set a proxy for Maven, a snippet like this can be added to the Maven settings file:

  <proxies>
    <proxy>
      <active>true</active>
      <protocol>http</protocol>
      <port>8080</port>
      <host>myproxy_host</host>
      <nonProxyHosts>non_proxy_hosts</nonProxyHosts>
    </proxy>
  </proxies>

More information on Maven settings: http://maven.apache.org/ref/3.0.3/maven-settings/settings.html

Checkout MAT Sources from SVN

If you want to use/edit MAT sources in the Eclipse IDE and build the same sources with Maven, then you need to take care that the directory structure is preserverd while importing the MAT projects using the SVN team provider. The following steps describe a way to do this:

  • Open the 'SVN Repository Exploring' perspective
  • Add the MAT Subversion repository at: https://dev.eclipse.org/svnroot/tools/org.eclipse.mat
  • Select 'trunk' and open the context menu
  • Select 'Find/Check Out As' from the context menu
  • Select 'Find projects in the children of the selected resource'
  • Select 'recursively'
  • Press 'Finish'
  • After some time, you'll get a window with the message: 'Following list contains projects that were automatically found on the repository. You can select project set you wish to be checked out into the workspace.'
  • Keep all projects selected
  • Select 'Check out as a projects into workspace'
  • Select 'Respect projects hierarchy'
  • Press 'Finish'

Building MAT

Execute the build

  • Open a console and go into the <mat_src>/parent folder (there is the parent pom.xml)
  • To build MAT execute
mvn clean install
  • To build MAT and perform FindBugs checks execute
mvn clean install findbugs:findbugs

Where to find the results?

You can find the results of the build in the corresponding .../target/ directories for each plugin, feature, etc... Of particular interest are:

  • <mat_src>/org.eclipse.mat.updatesite/target/site/ - it contains a p2 repository with MAT features
  • <mat_src>/org.eclipse.mat.product/target/products/ - it contains all standalone RCP applications

Further Information

  • The platforms for which RCPs are built are specified in the <mat_src>/parent/pom.xml file
  • There are two script files (build.bat and build.sh) which should combine the preparation steps and the real build. However, both still need some improvements

Known Problems

Wrong file permissions

When building MAT on a Windows box, the RCPs for any other OS will not have the proper permissions (e.g. the executables won't have the x flag). Building under Linux or other non-Windows OS helps.

Hudson Job at Eclipse

The job at the Eclise Hudson server that performs this build is https://hudson.eclipse.org/hudson/job/tycho-mat-nightly/.

The job is configured to sign the plugins and features in the update site, and to upload all artifacts to the download server. One can download such nightly/snapshot builds here: http://www.eclipse.org/mat/snapshotBuilds.php

Info: Signing is activated by the build-server profile (i.e. with parameter '-P build-server' added to the maven command)

Back to the top