Developer Guide

Skip to end of metadata
Go to start of metadata
information is not applicable to m2e 1.1 and newer
m2e 1.1 development environment setup is documented in http://wiki.eclipse.org/M2E_Development_Environment

Prerequisites

  • JDK 1.5 or better
  • eclipse + m2e 1.0 + m2e-tycho + m2e-modello + m2e-plexus (see below)
  • git

Checking out code

git.eclipse.org repositories
git repository groupId p2 repository comments
m2e-core org.eclipse.m2e    

Anonymous access

git clone git://git.eclipse.org/gitroot/m2e/m2e-core.git

Committer access

git clone ssh://committer_id@git.eclipse.org/gitroot/m2e/m2e-core.git

More information about Eclipse GIT support http://wiki.eclipse.org/Git

github.com/sonatype repositories

All repositories are currently hosted at github

git repository groupId p2 repository comments
m2e-core-tests org.eclipse.m2e   m2e-core unit and integration tests
m2eclipse-extras org.maven.ide.eclipse.extras m2e-extras  
m2eclipse-tycho org.sonatype.tycho.m2e m2eclipse-tycho tycho and bundle-plugin support
m2eclipse-wtp org.maven.ide.eclipse.wtp m2eclipse-wtp  
m2eclipse-cvs org.maven.ide.eclipse.cvs m2eclipse-cvs No CI build until needed
m2eclipse-mavenscm org.maven.ide.eclipse.mavenscm m2eclipse-mavenscm No CI build until needed
m2eclipse-subclipse org.maven.ide.eclipse.subclipse m2eclipse-subclipse No CI build until needed
m2eclipse-ajdt org.maven.ide.eclipse.ajdt m2eclipse-ajdt No CI build until needed

(names in bold are odd/inconsistent and may change)

Since there is no usable git team provider (egit is getting better with each release, but is not quite there yet), clone git repository from command line first

git clone git://github.com/sonatype/m2e-core-tests.git

Developers with commit access need to use ssh url (eg, git@github.com:sonatype/m2e-core-tests.git). Please check repository homepage at github to find read-only/developer urls for other repositories.

Old, read-only subversion repository is available at http://svn.sonatype.org/m2eclipse

Creating eclipse installation

Setting development workspace

Clone one or more git repositories listed above

For m2e-core, import "Existing Projects into Workspaces". For all other repositories, import "Existing Maven Projects"

Configuring Target Platform

Use PDE Target Platform preferences (Window->Preferences->Plug-In Development->Target Platforms) page to select target definition.

"m2e-e37" is based on Eclipse 3.7 and is recommended for m2e development
"m2e-e36" is based on Eclipse 3.6.2 and can be used to test compatibility with Eclipse 3.6.x

Once desired target platform is selected, PDE will download all required bundles and features from remote P2 repositories and will use the selected target platform to compile m2e project and run m2e in self-hosted mode. Please note that m2e target platform is over ~200M in size, so download can take very long time.

Running m2eclipse in self-hosted mode

Self-hosted mode launches another Eclipse application with references to the development workspace projects, in order to debug plug-ins without installing them. The quickest way to do this is to open org.eclipse.m2e.core/plugin.xml with PDE's Plug-in manifest editor and then on the overview page click "Launch an Eclipse application."

To get more control over what you run, use the menu "Run / Run configurations..." and create a new launch configuration using "Eclipse Application" configuration type. You can select the JRE used, set VM properties, and pick the plug-ins to include (use "all workspace and enabled target plug-ins, or select them individually and use "Validate Plug-ins" action to verify if selected configuration is correct).


You also need to increase Java heap for the JVM used launch m2eclipse. There are two ways to specify this when Eclipse launches Java processes:

  • In VM Arguments for current target platform: menu Window/Preferences/Plug-in development/Target Platform then select Launching Arguments tab (you can also specify the same arguments in the target platform definition editor, on the Environment tab)
  • In the launch profile: menu Run / Run Configurations..., select Arguments tab

Use the following arguments:

-Xmx512m
-XX:MaxPermSize=128m

Running tests

To run tests from the IDE, select org.eclipse.m2e.tests test project.
Then right-click, and run "Run As... / JUnit Plug-in test" action from the popup menu. You can use "Debug As... / JUnit Plug-in test" to run tests with debugger. You can also invoke the same actions on individual tests in this project.

One of the tests checks if a J2SE-1.5 execution environment is present, so make sure you have that.

In order to run tests, you need to increase memory for the test JVM as described in the previous section.

Building update site using Tycho

Maven 3.0.1 or newer is required to build m2eclipse distribution!

To build complete update site using Maven, you need all projects checked out locally. Then switch to org.eclipse.m2e.parent folder and run

mvn clean install

That will build all nested modules, including org.eclipse.m2e.site project and if everything succeed, the update site can be found at org.eclipse.m2e.site/target/site/

Continuous Integration server is building project update site from master HEAD and snapshot builds can be installed from https://repository.sonatype.org/content/repositories/forge-sites/m2e/.

Labels

m2eclipse m2eclipse Delete
maven maven Delete
eclipse eclipse Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Mar 19, 2009

    murray waters says:

    Which eclipse distribution should we use as a base? Is there one that will have ...

    Which eclipse distribution should we use as a base? Is there one that will have all the dependencies that we already need (eg mylyn) or do you need to one-by-one figure out what the missing imports are referring to and include all the required eclipse plugins?

  2. Mar 20, 2009

    Eugene Kuleshov says:

    Murray, please refer to "Configuring Target Platform" section above and document...

    Murray, please refer to "Configuring Target Platform" section above and documents linked from there.

  3. Jun 06, 2010

    Heiko Kopp says:

    Hello dear developers of m2eclipse, I've been trying to do as told on this page...

    Hello dear developers of m2eclipse,

    I've been trying to do as told on this page to get a working development version, for which I can try to reproduce some problems I have. After about a week of trying, I must say that all the information provided here, outdated or current do not lead to anything but an non-working plugin development mess inside Eclipse. 

    I've done as told in every step, downloaded the sources from Git, imported them, set the build. The following problems occur.

    In the eclipse, there is a m2eclipse installed. It seems that m2eclipse itself is unable to handle itself (weird, isn't it) ... I get a lot of errors of missing artifacts. Additionally, a lot of projects in the current git HEAD refer to a project artifact called 'parent' which should actually be 'org.maven.eclipse.ide.parent'. I wonder how you guys from the development team have ever tried checking out the code and doing a clean build without any problems. The change of the target platform does not really help resolving issues, indeed it brings more issues if you as for myself use an Eclipse RCP version that is capable of plugin development. I'm not new to plugins for eclipse, but after a week I lost interest in fixing the issues with things in this git repository. 

    Could you please update this page so a clean installation of eclipse (basic or rcp) and a checkout will end in a working plugin development? I think this will help a LOT of people to provide better reports for JIRA, cause sometimes the things I figured out are not helpful and I would like to dig into it first myself, before opening a new issue. If thats not wanted, and thats the reason why the development environment is currently this crappy, just tell me and I will stop putting more effort into it.

    Here is a list of problems that I had:

    • 'parent' artifact instead of 'org.maven.eclipse.ide.parent' (e.g. project org.maven.ide.eclipse:org.maven.ide.eclipse.pr.tests'
    • on Mac OS a bug in the maven-compiler-plugin prevents the system to recognize a valid JDK, thus the parent project would need a plugin configuration including source, target and most important as this is not enough an execution area with at least a single goal 'compile' in it. Only then 'Update project configuration' will work and set the JDK to 1.5 and not the default 1.4
    • almost all projects miss a dependency to org.eclipse.swt and there is no help here where to get this dependency for development INSIDE the Eclipse IDE
    • almost all projects miss a dependency to org.apache.maven and org.sonartype, no project configuration helps here. It seems only a command line build via 'mvn clean install' correctly resolves this issues. Is this a bug in m2eclipse?

    If it is not intended to try to build m2eclipse inside Eclipse and use its debugging features to find bugs, how do you do this?

    Best regards and thank you for the nevertheless great m2eclipse integration for maven into Eclipse.

    Heiko