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.
Difference between revisions of "MemoryAnalyzer/Building MAT With Tycho"
m (spelling) |
(→What is done) |
||
Line 28: | Line 28: | ||
== Preparation Steps == | == Preparation Steps == | ||
− | === | + | === Which preparation steps are performed === |
Parts of MAT depend on the IBM's DTFJ libraries, therefore one needs the libraries during the build. | Parts of MAT depend on the IBM's DTFJ libraries, therefore one needs the libraries during the build. | ||
This preparation step will do the following: | This preparation step will do the following: |
Revision as of 09:36, 27 May 2011
Contents
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
Prerequisites
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 http://maven.apache.org/download.html.
Proxy Settings
If you need to set 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
Preparation Steps
Which preparation steps are performed
Parts of MAT depend on the IBM's DTFJ libraries, therefore one needs the libraries during the build. This preparation step will do the following:
- download DTFJ (zipped "old" update site)
- publish a p2 repository with DTFJ
- modify the target platform definition used for the rest of the build
Execution
- Go in the <mat_src>/prepare_build/ directory
- Execute
mvn clean install
- This maven build is using the maven-antrun plugin to download the zip containing DTFJ. If you need to set proxy you can do it using the standard Java settings, i.e. the command line will look like this:
mvn -Dhttp.proxyHost=myProxyHost -Dhttp.proxyPort=myProxyPort clean install
On the Hudson boxes at Eclipse the settings are defined as $ANT_OPTS
Verify
If the build was successful, then:
- <mat_src>/prepare_build/target/repository/ will contain the p2 repository with DTFJ
- <mat_src>/org.eclipse.mat.targetdef/mat-site.target will be modified to point to this repository
Building MAT
Once the #Preparation Steps are done (normally only once) one can run the maven build for MAT.
Execute the build
- Go to the root of the sources (there is the parent pom.xml), i.e. <mat_src>/pom.xml
- To simply build MAT execute
mvn clean install
- To build MAT and perform findbugs checks execut
mvn clean install findbugs:findbugs
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>/product/target/products/ - it contains all standalone RCP applications
Further Information
- The platforms for which RCPs are built are specified in the <mat_src>/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
Can't build RCPs for Mac
The problem is reported here: https://bugs.eclipse.org/bugs/show_bug.cgi?id=313997. Putting a patched o.e.equinox.p2.publisher.jar under <maven_repository>/org/sonatype/tycho/tycho-p2-runtime/0.11.0/eclipse/plugins/ helps for local build.
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 Lunix 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/.
There are still a number of TODOs:
- sign the jars of the update site automatically. Hopefully this can help (haven't tried yet): http://aniszczyk.org/2011/05/18/eclipse-org-signing-support-for-maven-tycho/
- publish nightly results on the download server