MemoryAnalyzer/Building MAT With Tycho
This page describes how Memory Analyzer can be built using Maven/Tycho. The build will
- build all MAT bundles
- execute all tests
- (optional) run FindBugs static checks
- build eclipse features containing the MAT plugins and produce an update site (p2 repository) with them
- produce standalone (Eclipse RCP based) products for different OS platforms
- sign and upload the produced artifacts (when executed on the Eclipse Hudson server)
MAT sources are in a Git repository, therefore you need a git client.
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.
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 Git
Have a look at MemoryAnalyzer/Contributor_Reference#Get the source
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
- The platforms for which RCPs are built are specified in the <mat_src>/parent/pom.xml file
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/mat/.
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)