Skip to content
Gerson Sunyé edited this page May 12, 2020 · 6 revisions

This page details the different steps required to build locally NeoEMF. When built and installed in your local maven repository, you can import it in your project using the following maven dependency:

<dependency>
  <groupId>fr.inria.atlanmod.neoemf</groupId>
  <artifactId>neoemf-core</artifactId>
  <version>latest</version>
</dependency>

<dependency>
  <groupId>fr.inria.atlanmod.neoemf</groupId>
  <artifactId>neoemf-io</artifactId>
  <version>latest</version>
</dependency>

Alternatively, the local build embeds a zipped update site in the plugins/fr.inria.atlanmod.neoemf.eclipse.update/1.0.2-SNAPSHOT folder you can install in your Eclipse application.

Build with Maven

You can download the source code of the latest release here or clone the master branch using the following git command:

git clone -b master --single-branch  https://github.com/atlanmod/NeoEMF.git

Configure Maven's JDK to allocate more memory:

export MAVEN_OPTS="-XX:PermSize=256m -XX:MaxPermSize=512m -XstartOnFirstThread"

Build Core Components

NeoEMF core components are bundled as a set of Jar files that can be imported using the maven dependency mechanism. You can build NeoEMF core components by going to the root of the source directory and run the following command:

mvn clean install

(optional) You can also run the tests by using :

mvn test (-pl <neoemf-core|neoemf-data|neoemf-io|...>)

Note that building the core components does not create Eclipse plugins and an local version of the update site. To generate these additional artifacts see the next section.

Build Eclipse Integration Plugins

NeoEMF Eclipse integration plugins provide Eclipse compatible plugins and update site. To build these artifacts, you need to run the following command:

mvn clean install -f plugins/eclipse

NeoEMF plugins and update-site are built and stored in your local maven repository at plugins/fr.inria.atlanmod.neoemf.eclipse.update/1.0.2-SNAPSHOT.

Build in Eclipse

You can alternatively build NeoEMF directly in Eclipse using the Eclipse Git and Maven integrations plugin.

Requirements

In order to import NeoEMF Git repository in Eclipse, you will need the following plugins in your installation (installable from the software repository of your Eclipse release):

  • EGit : v3.4.2 or later
  • m2e : v1.5.1 or later

And the following m2e connectors (installable through Preferences → Maven → Discovery / m2e Marketplace):

  • Maven SCM Handler for EGit (m2e-egit) : v0.14 or later
  • Tycho Project Configurators (Tycho configurator) : v0.8.0 or later

Note that additional m2e connectors can be required denpending of your specific installation. They can be installed using Eclipse quick fixes available in the pom files.

Import and Build

  • Import the project using File → Import → Maven → Check out Maven Projects from SCM
  • Select "git" in the SCM URL field and paste the repository address (https://github.com/atlanmod/NeoEMF.git)
  • Choose your workspace and working sets setting and finish

The projects project, parent, core, graph, graph.blueprints and map will be imported and built.

If you want to import the projects generating Eclipse specific plugins (features, update-site), you have to import them by hand using File → Import → Maven → Existing Maven Projects, and select the projects under the "plugins" folder in your local repository.

Note that building NeoEMF in Eclipse can take a long time (and a large disk space) because the default SCM connector fetches all the branches of the remote git repository.

Issues

If you experience issues installing or using NeoEMF, you can submit an issue on github or contact us at [email protected]

Known issues:

  • Only Luna plugins are fetched (the compatibility is not ensured for previous Eclipse versions)
  • The Eclipse plugins can not be built if maven can not access internet (it is needed to fetch Luna p2 repositories)
  • Sometimes the plugin build crashes and/or freezes during p2 index fetching from Luna repositories. It is generally sufficient to cancel the build (ctrl-c) and to relaunch it.