<!DOCTYPE html>
<html>

  <head>
	<meta charset="UTF-8">
	<title>Xtext - Continuous Integration (with Maven)</title>
	
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta name="description"
		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
	<meta name="author" content="Sven Efftinge">
	<meta name="author" content="Miro Spoenemann">
	<!--  styles -->
	<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
	<!--[if lt IE 9]>
	  <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
	<![endif]-->
	
	<!-- Le fav and touch icons -->
	<link rel="shortcut icon" href="/Xtext/images/favicon.png">
	
	<link href="/Xtext/css/bootstrap.css" rel="stylesheet" type='text/css'>
	<link href="/Xtext/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
	<link href="/Xtext/css/shield-responsive.css" rel="stylesheet" type='text/css'>
	<link href='/Xtext/css/fonts.css' rel='stylesheet' type='text/css'>
	<link href="/Xtext/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
	<link href="/Xtext/css/prettify.css" type="text/css" rel="stylesheet"/>
	<link href="/Xtext/css/style.css" rel="stylesheet" type='text/css'>
	<!-- cover flow -->
	<link href="/Xtext/css/coverflow.css" rel="stylesheet" type='text/css'>
	<!--[if lt IE 9]>
	  <link href="/css/iebugs.css" rel="stylesheet" type='text/css'>
	<![endif]-->

	<!-- BEGIN Cookie Consent
	<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.css" />
	<script src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.js"></script>
	<script>
	window.addEventListener("load", function(){
	window.cookieconsent.initialise({
		"palette": {
		"popup": {
		  "background": "#000"
		},
		"button": {
		  "background": "#f1d600"
		}
		},
		"theme": "edgeless",
		"type": "opt-in",
		onInitialise: function (status) {
		  var type = this.options.type;
		  var didConsent = this.hasConsented();
		  if (type == 'opt-in' && didConsent) {
		    // TODO: enable cookies
		  }
		  if (type == 'opt-out' && !didConsent) {
		    // TODO: disable cookies
		  }
		},
		onStatusChange: function(status, chosenBefore) {
		  var type = this.options.type;
		  var didConsent = this.hasConsented();
		  if (type == 'opt-in' && didConsent) {
		    // TODO: enable cookies
		  }
		  if (type == 'opt-out' && !didConsent) {
		    // TODO: disable cookies
		  }
		}, 
		onRevokeChoice: function() {
		  var type = this.options.type;
		  if (type == 'opt-in') {
		    // TODO: disable cookies
		  }
		  if (type == 'opt-out') {
		    // TODO: enable cookies
		  }
		},
		"content": {
		"href": "http://www.eclipse.org/legal/privacy.php"
		}
	})});
	</script>
	END Cookie Consent -->
</head>


  <body>
  
    <header class="site-header">

  <!-- Navbar -->
  <div class="navbar navbar-fixed-top">
    <div class="navbar-inner">
      <div class="container">
        <a class="btn btn-navbar" data-toggle="collapse"
          data-target=".nav-collapse"> <span class="icon-bar"></span> <span
          class="icon-bar"></span> <span class="icon-bar"></span>
        </a> <a class="brand" href="/Xtext/index.html"></a>
        <div class="nav-collapse collapse" style="height: 0px;">
          <ul class="nav">
            <!--li ><a href="/Xtext/news.html">News</a></li-->
            <li ><a href="/Xtext/download.html">Download</a></li>
            <li ><a href="/Xtext/documentation/index.html">Documentation</a></li>
            <li ><a href="/Xtext/community.html">Community</a></li>
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Support &amp; Trainings<span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="https://www.itemis.com/en/xtext/support-and-team/" target="_blank">itemis</a></li>
                <li><a href="https://www.typefox.io/language-engineering/" target="_blank">TypeFox</a></li>
              </ul>
            </li>
            <li ><a href="http://xtend-lang.org">Xtend</a></li>
          </ul>
          <!--div class="nav pull-right">
            <li ><a><iframe src="https://ghbtns.com/github-btn.html?user=eclipse&repo=xtext&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px"></iframe></a></li>
          </div-->
        </div>
        <!--/.nav-collapse -->
      </div>
    </div>
  </div>
  <!-- Navbar End -->

</header>


    <div class="page-content">
  <script>
    function startSearch(event) {
        if (event.keyCode == 13) {
            var q = 'site:eclipse.org/Xtext/documentation+' + event.target.value;
            window.open('https://www.google.com/search?q=' + q, "_self");
        }
    }
  </script>
  <div class="wrapper">
  	<div id="page">  
      <div class="inner">
        <div id="maincontainer" class="container">
          <span class="edit-on-github pull-right">
            <a href="https://github.com/eclipse/xtext/edit/website-published/xtext-website/documentation/350_continuous_integration.md">Edit on Github</a>
          </span>
          <div class="span3" style="margin-left: 0px;">
            <div class="search-bar">
              <img src="/Xtext/images/search-gray.png"/>
              <input type="search" id="google-search" onkeyup="startSearch(event);"/>
            </div>
            <ul id="nav-outline" style="margin-left: 0px;">
	<li class="nav-part">Getting Started</li>
	<li><a href="102_domainmodelwalkthrough.html">15 Minutes Tutorial</a></li>
	<li><a href="103_domainmodelnextsteps.html">15 Minutes Tutorial - Extended</a></li>
	<li><a href="104_jvmdomainmodel.html">Five simple steps to your JVM language</a></li>
		
	<li class="nav-part">Reference Documentation</li>
	<li><a href="301_grammarlanguage.html">The Grammar Language</a></li>
	<li><a href="302_configuration.html">Configuration</a></li>
	<li><a href="303_runtime_concepts.html">Language Implementation</a></li>
	<li><a href="305_xbase.html">Integration with Java</a></li>
	<li><a href="307_special_languages.html">Typical Language Configurations</a></li>
	<li><a href="308_emf_integration.html">Integration with EMF</a></li>
	<li><a href="310_eclipse_support.html">Eclipse Support</a></li>
	<li><a href="330_web_support.html">Web Editor Support</a></li>
	<li><a href="340_lsp_support.html">LSP Support</a></li>
	<li><a href="350_continuous_integration.html">Continuous Integration</a></li>
</ul>
          </div>
          <div class="span8 doc-contents">
            <h1 id="continuous-integration">Continuous Integration (with Maven)</h1>

<p>There are two aspects to consider when it comes to continuous integration. Firstly you may want to have a continuous build of your language that runs all tests and creates an Eclipse update site and other needed artifacts, and secondly you may want to have your language and its corresponding code generator integrated in your application builds. We will discuss both cases in this section along with a set of example projects, which you can clone, inspect or download from <a href="https://github.com/xtext/maven-xtext-example">github.com/xtext/maven-xtext-example</a>.</p>

<p>To follow this section you need a basic understanding of how Maven works. Please read a tutorial on Maven if you don’t know anything about it.</p>

<h2 id="an-overview-of-the-example-projects">An overview of the example projects</h2>

<p>If you have a look at the example, you’ll find seven different projects of which six are for the various aspects of the language and its build. First we have the language’s runtime project, UI project and test project. In addition we need a feature project, an update site project and a project where we put the parent pom. The seventh project is called <code>example-project</code> and is really a small application project that uses the built language and triggers the code generator through a dedicated maven plug-in. Let’s first have a look at how to build the language.</p>

<h2 id="tycho-build">Building an Xtext language with Maven and Tycho</h2>

<p>Although the runtime aspects of an Xtext language is not dependent on Eclipse or its OSGi container, an Xtext language is developed in the form of OSGi bundles. For this kind of builds most people rely on <a href="http://eclipse.org/tycho/">Tycho</a>, which is an OSGi/P2 adapter plug-in for Maven builds. Tycho obtains much information from the OSGi bundle’s manifest. Additionally needed information is configured through the pom.xml file which sits at the root of each project.</p>

<h3 id="the-parent-project-mymavenizedherolanguageparent">The parent project (my.mavenized.herolanguage.parent)</h3>

<p>All of the projects are aggregated in a parent pom in the root directory. If you import the projects into Eclipse the imported project is called <code>my.mavenized.herolanguage.parent</code>. Information defined in the parent pom is automatically inherited by the aggregated child projects, so you don’t need to reconfigure the same information over and over again. Here we have configured two additional plug-ins:</p>

<ul>
  <li>
    <p>The Xtend compiler plug-in will generate the Java source code for any Xtend files during the ‘generate-sources’ phase</p>

    <pre><code class="language-xml">&lt;pluginManagement&gt;
  &lt;plugins&gt;
    &lt;!-- xtend-maven-plugin is in pluginManagement instead of in plugins
       so that it doesn't run before the exec-maven-plugin's *.mwe2 gen;
       this way we can list it after. 
      --&gt;
          
    &lt;plugin&gt;
      &lt;groupId&gt;org.eclipse.xtend&lt;/groupId&gt;
      &lt;artifactId&gt;xtend-maven-plugin&lt;/artifactId&gt;
      &lt;version&gt;${xtext.version}&lt;/version&gt;
      &lt;executions&gt;
        &lt;execution&gt;
          &lt;goals&gt;
            &lt;goal&gt;compile&lt;/goal&gt;
            &lt;goal&gt;xtend-install-debug-info&lt;/goal&gt;
            &lt;goal&gt;testCompile&lt;/goal&gt;
            &lt;goal&gt;xtend-test-install-debug-info&lt;/goal&gt;
          &lt;/goals&gt;
        &lt;/execution&gt;
      &lt;/executions&gt;
      &lt;configuration&gt;
        &lt;outputDirectory&gt;xtend-gen&lt;/outputDirectory&gt;
      &lt;/configuration&gt;
    &lt;/plugin&gt;
  &lt;/plugins&gt;
&lt;/pluginManagement&gt;
</code></pre>
  </li>
  <li>
    <p>The Tycho plug-in will pick up and use Eclipse plug-in specific configuration data from the projects in order to build Eclipse conformant OSGi bundles, features and an update site.</p>

    <pre><code class="language-xml">&lt;plugins&gt;
  &lt;plugin&gt;
    &lt;groupId&gt;org.eclipse.tycho&lt;/groupId&gt;
    &lt;artifactId&gt;tycho-maven-plugin&lt;/artifactId&gt;
    &lt;version&gt;${tycho-version}&lt;/version&gt;
    &lt;extensions&gt;true&lt;/extensions&gt;
  &lt;/plugin&gt;
&lt;/plugins&gt;
</code></pre>
  </li>
</ul>

<p>To build the entire project you have to run your maven build with this pom file.</p>

<h3 id="the-update-site-project-mymavenizedherolanguageupdatesite">The update site project (my.mavenized.herolanguage.updatesite)</h3>

<p>The project <code>my.mavenized.herolanguage.updatesite</code> denotes the updatesite project and only contains a pom.xml and a file called category.xml. The latter includes information about which features are contained in the update site. As you can see, the <code>category.xml</code> file points to the single feature, which is defined in the project <code>my.mavenized.herolanguage.sdk</code>.</p>

<h3 id="the-feature-project-mymavenizedherolanguagesdk">The feature project (my.mavenized.herolanguage.sdk)</h3>

<p>This is another project made up on configuration data solely. It contains the <code>feature.xml</code> file which points to the Eclipse plug-ins (bundles) included in this feature.</p>

<h3 id="the-core-language-project-mymavenizedherolanguage">The core language project (my.mavenized.herolanguage)</h3>

<p>The <code>pom.xml</code> for the language project contains information about how Maven should run the Xtext’s code generator. The first plug-in invokes the MWE2 file through a standard Java process:</p>

<pre><code class="language-xml">&lt;plugin&gt;
  &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
  &lt;artifactId&gt;exec-maven-plugin&lt;/artifactId&gt;
  &lt;version&gt;1.4.0&lt;/version&gt;
  &lt;executions&gt;
    &lt;execution&gt;
      &lt;id&gt;mwe2Launcher&lt;/id&gt;
      &lt;phase&gt;generate-sources&lt;/phase&gt;
      &lt;goals&gt;
        &lt;goal&gt;java&lt;/goal&gt;
      &lt;/goals&gt;
    &lt;/execution&gt;
  &lt;/executions&gt;
  &lt;configuration&gt;
    &lt;mainClass&gt;org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher&lt;/mainClass&gt;
    &lt;arguments&gt;
      &lt;argument&gt;/${project.basedir}/src/my/mavenized/GenerateHeroLanguage.mwe2&lt;/argument&gt;
      &lt;argument&gt;-p&lt;/argument&gt;
      &lt;argument&gt;rootPath=/${project.basedir}/..&lt;/argument&gt;
    &lt;/arguments&gt;
    &lt;classpathScope&gt;compile&lt;/classpathScope&gt;
    &lt;includePluginDependencies&gt;true&lt;/includePluginDependencies&gt;
    &lt;cleanupDaemonThreads&gt;false&lt;/cleanupDaemonThreads&gt;&lt;!-- see https://bugs.eclipse.org/bugs/show_bug.cgi?id=475098#c3 --&gt;
  &lt;/configuration&gt;
  &lt;dependencies&gt;
    &lt;dependency&gt;
      &lt;groupId&gt;org.eclipse.emf&lt;/groupId&gt;
      &lt;artifactId&gt;org.eclipse.emf.mwe2.launch&lt;/artifactId&gt;
      &lt;version&gt;2.12.1&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
      &lt;groupId&gt;org.eclipse.xtext&lt;/groupId&gt;
      &lt;artifactId&gt;org.eclipse.xtext.common.types&lt;/artifactId&gt;
      &lt;version&gt;${xtext.version}&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
      &lt;groupId&gt;org.eclipse.xtext&lt;/groupId&gt;
      &lt;artifactId&gt;org.eclipse.xtext.xtext.generator&lt;/artifactId&gt;
      &lt;version&gt;${xtext.version}&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
      &lt;groupId&gt;org.eclipse.xtext&lt;/groupId&gt;
      &lt;artifactId&gt;org.eclipse.xtext.xbase&lt;/artifactId&gt;
      &lt;version&gt;${xtext.version}&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
      &lt;groupId&gt;org.eclipse.xtext&lt;/groupId&gt;
      &lt;artifactId&gt;xtext-antlr-generator&lt;/artifactId&gt;
      &lt;version&gt;[2.1.1, 3)&lt;/version&gt;
    &lt;/dependency&gt;
  &lt;/dependencies&gt;
&lt;/plugin&gt;
</code></pre>

<p>The second used plug-in cleans the directories containing generated resources during the clean phase:</p>

<pre><code class="language-xml">&lt;plugin&gt;
  &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
  &lt;artifactId&gt;maven-clean-plugin&lt;/artifactId&gt;
  &lt;version&gt;3.1.0&lt;/version&gt;
  &lt;configuration&gt;
    &lt;filesets&gt;
		&lt;fileset&gt;
			&lt;directory&gt;${basedir}/../my.mavenized.herolanguage/src-gen/&lt;/directory&gt;
			&lt;includes&gt;
				&lt;include&gt;**/*&lt;/include&gt;
			&lt;/includes&gt;
		&lt;/fileset&gt;
		&lt;fileset&gt;
			&lt;directory&gt;${basedir}/../my.mavenized.herolanguage.tests/src-gen/&lt;/directory&gt;
			&lt;includes&gt;
				&lt;include&gt;**/*&lt;/include&gt;
			&lt;/includes&gt;
		&lt;/fileset&gt;
		&lt;fileset&gt;
			&lt;directory&gt;${basedir}/../my.mavenized.herolanguage.ide/src-gen/&lt;/directory&gt;
			&lt;includes&gt;
				&lt;include&gt;**/*&lt;/include&gt;
			&lt;/includes&gt;
		&lt;/fileset&gt;
		&lt;fileset&gt;
			&lt;directory&gt;${basedir}/../my.mavenized.herolanguage.ui/src-gen/&lt;/directory&gt;
			&lt;includes&gt;
				&lt;include&gt;**/*&lt;/include&gt;
			&lt;/includes&gt;
		&lt;/fileset&gt;
		&lt;fileset&gt;
			&lt;directory&gt;${basedir}/../my.mavenized.herolanguage.ui.tests/src-gen/&lt;/directory&gt;
			&lt;includes&gt;
				&lt;include&gt;**/*&lt;/include&gt;
			&lt;/includes&gt;
		&lt;/fileset&gt;
		&lt;fileset&gt;
			&lt;directory&gt;${basedir}/model/generated/&lt;/directory&gt;
		&lt;/fileset&gt;
    &lt;/filesets&gt;
  &lt;/configuration&gt;
&lt;/plugin&gt;
</code></pre>

<h3 id="the-ui-language-project-mymavenizedherolanguageui">The ui language project (my.mavenized.herolanguage.ui)</h3>

<p>Here all code that is specific to Eclipse is located. All the additions that you place for the UI of the language, all editors, wizards and preferences, are to be placed inside this project. Regarding the maven build the <code>pom.xml</code> is not very special.</p>

<h3 id="the-tests-language-project-mymavenizedherolanguagetests">The tests language project (my.mavenized.herolanguage.tests)</h3>

<p>To separate the testing code from the application you should place all your unit tests into this project. The <code>pom.xml</code> includes the <code>tycho-surefire-plugin</code> for the testing but nothing special apart.</p>

<h2 id="standalone-build">Integration in Standard Maven Builds</h2>

<p>Now that we can build our language we need to be able to integrate our language compiler in the integration build of application projects. For this purpose a dedicated maven-plugin is available in Maven central. We now refer to the project <code>example-project</code>, which is a standard Java-project that shouldn’t contain any Eclipse plug-in specific information, nor should it be built with Tycho. Let’s have a look at the pom.xml and therein the Xtext plug-in.</p>

<pre><code class="language-xml">&lt;plugin&gt;
	&lt;groupId&gt;org.eclipse.xtext&lt;/groupId&gt;
	&lt;artifactId&gt;xtext-maven-plugin&lt;/artifactId&gt;
	&lt;version&gt;${xtext-version}&lt;/version&gt;
	&lt;executions&gt;
		&lt;execution&gt;
			&lt;goals&gt;
				&lt;goal&gt;generate&lt;/goal&gt;
			&lt;/goals&gt;
		&lt;/execution&gt;
	&lt;/executions&gt;
	&lt;configuration&gt;
		&lt;languages&gt;
			&lt;language&gt;
				&lt;setup&gt;my.mavenized.HeroLanguageStandaloneSetup&lt;/setup&gt;
				&lt;outputConfigurations&gt;
					&lt;outputConfiguration&gt;
						&lt;outputDirectory&gt;src/main/generated-sources/xtend/&lt;/outputDirectory&gt;
					&lt;/outputConfiguration&gt;
				&lt;/outputConfigurations&gt;
			&lt;/language&gt;
		&lt;/languages&gt;
	&lt;/configuration&gt;
	&lt;dependencies&gt;
		&lt;dependency&gt;
			&lt;groupId&gt;my.mavenized.herolanguage&lt;/groupId&gt;
			&lt;artifactId&gt;my.mavenized.herolanguage&lt;/artifactId&gt;
			&lt;version&gt;1.0.0-SNAPSHOT&lt;/version&gt;
		&lt;/dependency&gt;
	&lt;/dependencies&gt;
&lt;/plugin&gt;
</code></pre>

<p>You may add multiple languages in the languages section. A language will use the default outputConfiguration, but you can override the different properties just as you can do within Eclipse preferences.</p>

<h2 id="maven-tycho-hints">Maven Tycho Hints</h2>

<p>Tycho allows you to resolve project dependencies against existing p2 repositories. There are two ways to define target p2 repositories in a Tycho build. The first way is to define the repository URLs directly in the <code>pom.xml</code> using maven <code>&lt;repositories&gt;</code> section. The p2 repositories need to be marked with layout=p2.<br />
The second way is to use Eclipse <a href="https://wiki.eclipse.org/Tycho/Target_Platform#Target_files">target platform files</a>. This approach is much faster, because the target platform resolution is performed only once, while the repository look-ups have to be done for every module. Using the target platform will drastically reduce the build time, especially in bigger projects with a lot of modules.</p>

<p>To further speed up the p2 dependency resolution step, use the concrete build repository instead of a project’s repository or the huge <a href="http://download.eclipse.org/releases/photon/">eclipse common</a> composite repository. In the table below you can find p2 repository URLs for Xtext releases and their dependencies. Versions in parentheses represent the minimal required versions.</p>

<table>
  <thead>
    <tr>
      <th>Xtext</th>
      <th>EMF</th>
      <th>MWE2/MWE</th>
      <th>Xpand</th>
      <th>Eclipse</th>
      <th>All included in</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.25.0/">2.25.0</a></td>
      <td><a href="http://download.eclipse.org/modeling/emf/emf/builds/release/2.25">2.25.0</a> (2.20.0)</td>
      <td><a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.12.1/">2.12.1</a> (2.9.1)</td>
      <td><a href="http://download.eclipse.org/modeling/m2t/xpand/updates/releases/R201605260315">2.2.0</a> (1.4)</td>
      <td><a href="http://download.eclipse.org/releases/2021-03">4.19.0</a> (4.7.3)</td>
      <td><a href="http://download.eclipse.org/releases/2021-03">2021-03</a></td>
    </tr>
    <tr>
      <td><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.24.0/">2.24.0</a></td>
      <td><a href="http://download.eclipse.org/modeling/emf/emf/builds/release/2.24">2.24.0</a> (2.20.0)</td>
      <td><a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.12.0/">2.12.0</a> (2.9.1)</td>
      <td><a href="http://download.eclipse.org/modeling/m2t/xpand/updates/releases/R201605260315">2.2.0</a> (1.4)</td>
      <td><a href="http://download.eclipse.org/releases/2020-12">4.18.0</a> (4.7.3)</td>
      <td><a href="http://download.eclipse.org/releases/2020-12">2020-12</a></td>
    </tr>
    <tr>
      <td><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.23.0/">2.23.0</a></td>
      <td><a href="http://download.eclipse.org/modeling/emf/emf/builds/release/2.23">2.23.0</a> (2.20.0)</td>
      <td><a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.11.3/">2.11.3</a> (2.9.1)</td>
      <td><a href="http://download.eclipse.org/modeling/m2t/xpand/updates/releases/R201605260315">2.2.0</a> (1.4)</td>
      <td><a href="http://download.eclipse.org/releases/2020-09">4.17.0</a> (4.7.3)</td>
      <td><a href="http://download.eclipse.org/releases/2020-09">2020-09</a></td>
    </tr>
    <tr>
      <td><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.22.0/">2.22.0</a></td>
      <td><a href="http://download.eclipse.org/modeling/emf/emf/builds/release/2.22">2.22.0</a> (2.20.0)</td>
      <td><a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.11.3/">2.11.3</a> (2.9.1)</td>
      <td><a href="http://download.eclipse.org/modeling/m2t/xpand/updates/releases/R201605260315">2.2.0</a> (1.4)</td>
      <td><a href="http://download.eclipse.org/releases/2020-06">4.16.0</a> (4.7.3)</td>
      <td><a href="http://download.eclipse.org/releases/2020-06">2020-06</a></td>
    </tr>
    <tr>
      <td><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.21.0/">2.21.0</a></td>
      <td><a href="http://download.eclipse.org/modeling/emf/emf/builds/release/2.21">2.21.0</a> (2.20.0)</td>
      <td><a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.11.2/">2.11.2</a> (2.9.1)</td>
      <td><a href="http://download.eclipse.org/modeling/m2t/xpand/updates/releases/R201605260315">2.2.0</a> (1.4)</td>
      <td><a href="http://download.eclipse.org/releases/2020-03">4.15.0</a> (4.7.3)</td>
      <td><a href="http://download.eclipse.org/releases/2020-03">2020-03</a></td>
    </tr>
    <tr>
      <td><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.20.0/">2.20.0</a></td>
      <td><a href="http://download.eclipse.org/modeling/emf/emf/builds/release/2.20">2.20.0</a> (2.12.0)</td>
      <td><a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.11.1/">2.11.1</a> (2.9.1)</td>
      <td><a href="http://download.eclipse.org/modeling/m2t/xpand/updates/releases/R201605260315">2.2.0</a> (1.4)</td>
      <td><a href="http://download.eclipse.org/releases/2019-12">4.14.0</a> (4.7.3)</td>
      <td><a href="http://download.eclipse.org/releases/2019-12">2019-12</a></td>
    </tr>
    <tr>
      <td><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.19.0/">2.19.0</a></td>
      <td><a href="http://download.eclipse.org/modeling/emf/emf/builds/release/2.19">2.19.0</a> (2.12.0)</td>
      <td><a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.11.0/">2.11.0</a> (2.9.1)</td>
      <td><a href="http://download.eclipse.org/modeling/m2t/xpand/updates/releases/R201605260315">2.2.0</a> (1.4)</td>
      <td><a href="http://download.eclipse.org/releases/2019-09">4.13.0</a> (4.7.3)</td>
      <td><a href="http://download.eclipse.org/releases/2019-09">2019-09</a></td>
    </tr>
    <tr>
      <td><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.18.0/">2.18.0</a></td>
      <td><a href="http://download.eclipse.org/modeling/emf/emf/builds/release/2.18">2.18.0</a> (2.12.0)</td>
      <td><a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.10.0/">2.10.0</a> (2.9.1)</td>
      <td><a href="http://download.eclipse.org/modeling/m2t/xpand/updates/releases/R201605260315">2.2.0</a> (1.4)</td>
      <td><a href="http://download.eclipse.org/releases/2019-06">4.12.0</a> (4.7.3)</td>
      <td><a href="http://download.eclipse.org/releases/2019-06">2019-06</a></td>
    </tr>
    <tr>
      <td><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.17.0/">2.17.0</a></td>
      <td><a href="http://download.eclipse.org/modeling/emf/emf/builds/release/2.17">2.17.0</a> (2.12.0)</td>
      <td><a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.10.0/">2.10.0</a> (2.9.1)</td>
      <td><a href="http://download.eclipse.org/modeling/m2t/xpand/updates/releases/R201605260315">2.2.0</a> (1.4)</td>
      <td><a href="http://download.eclipse.org/releases/2019-03">4.11.0</a> (4.7.3)</td>
      <td><a href="http://download.eclipse.org/releases/2019-03">2019-03</a></td>
    </tr>
    <tr>
      <td><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.16.0/">2.16.0</a></td>
      <td><a href="http://download.eclipse.org/modeling/emf/emf/builds/release/2.16">2.16.0</a> (2.12.0)</td>
      <td><a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.9.0/">2.9.0</a> (2.7.1)</td>
      <td><a href="http://download.eclipse.org/modeling/m2t/xpand/updates/releases/R201605260315">2.2.0</a> (1.4)</td>
      <td><a href="http://download.eclipse.org/releases/2018-12/201812191000">4.10.0</a> (4.7.3)</td>
      <td><a href="http://download.eclipse.org/releases/2018-12/201812191000">2018-12</a></td>
    </tr>
    <tr>
      <td><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.15.0/">2.15.0</a></td>
      <td><a href="http://download.eclipse.org/modeling/emf/emf/builds/release/2.15">2.15.0</a> (2.12.0)</td>
      <td><a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.9.0/">2.9.0</a> (2.7.1)</td>
      <td><a href="http://download.eclipse.org/modeling/m2t/xpand/updates/releases/R201605260315">2.2.0</a> (1.4)</td>
      <td><a href="http://download.eclipse.org/releases/2018-09/201809191002">4.9.0</a> (4.7.3)</td>
      <td><a href="http://download.eclipse.org/releases/2018-09/201809191002">2018-09</a></td>
    </tr>
    <tr>
      <td><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.14.0/">2.14.0</a></td>
      <td><a href="http://download.eclipse.org/modeling/emf/emf/builds/release/2.14">2.14.0</a> (2.12.0)</td>
      <td><a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.9.0/">2.9.0</a> (2.7.1)</td>
      <td><a href="http://download.eclipse.org/modeling/m2t/xpand/updates/releases/R201605260315">2.2.0</a> (1.4)</td>
      <td><a href="http://download.eclipse.org/releases/photon/201806271001">4.8.0</a> (4.7.3)</td>
      <td><a href="http://download.eclipse.org/releases/photon/201806271001">Photon</a></td>
    </tr>
    <tr>
      <td><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.13.0/">2.13.0</a></td>
      <td><a href="http://download.eclipse.org/modeling/emf/emf/builds/release/2.13">2.13.0</a> (2.12.0)</td>
      <td><a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.9.0/">2.9.0</a> (2.7.1)</td>
      <td><a href="http://download.eclipse.org/modeling/m2t/xpand/updates/releases/R201605260315">2.2.0</a> (1.4)</td>
      <td><a href="http://download.eclipse.org/releases/oxygen/201804111000">4.7.3</a> (3.6)</td>
      <td><a href="http://download.eclipse.org/releases/oxygen/201804111000">Oxygen</a></td>
    </tr>
    <tr>
      <td><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.12.0/">2.12.0</a></td>
      <td><a href="http://download.eclipse.org/modeling/emf/emf/builds/release/2.13">2.13.0</a> (2.12.0)</td>
      <td><a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.9.0/">2.9.0</a> (2.7.1)</td>
      <td><a href="http://download.eclipse.org/modeling/m2t/xpand/updates/releases/R201605260315">2.2.0</a> (1.4)</td>
      <td><a href="http://download.eclipse.org/releases/oxygen/201804111000">4.7.3</a> (3.6)</td>
      <td><a href="http://download.eclipse.org/releases/oxygen/201804111000">Oxygen</a></td>
    </tr>
    <tr>
      <td><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.11.0/">2.11.0</a></td>
      <td><a href="http://download.eclipse.org/releases/neon/201606221000">2.12.0</a> (2.12.0)</td>
      <td><a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.9.0/">2.9.0</a> (2.7.1)</td>
      <td><a href="http://download.eclipse.org/modeling/m2t/xpand/updates/releases/R201605260315">2.2.0</a> (1.4)</td>
      <td><a href="http://download.eclipse.org/eclipse/updates/4.6/R-4.6-201606061100">4.6.0</a> (3.6)</td>
      <td><a href="http://download.eclipse.org/releases/neon/201606221000">Neon*</a></td>
    </tr>
    <tr>
      <td><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.10.0/">2.10.0</a></td>
      <td><a href="http://download.eclipse.org/releases/neon/201606221000">2.12.0</a> (2.12.0)</td>
      <td><a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.9.0/">2.9.0</a> (2.7.1)</td>
      <td><a href="http://download.eclipse.org/modeling/m2t/xpand/updates/releases/R201605260315">2.2.0</a> (1.4)</td>
      <td><a href="http://download.eclipse.org/eclipse/updates/4.6/R-4.6-201606061100">4.6.0</a> (3.6)</td>
      <td><a href="http://download.eclipse.org/releases/neon/201606221000">Neon</a></td>
    </tr>
    <tr>
      <td><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.9.1/">2.9.1</a></td>
      <td><a href="http://download.eclipse.org/modeling/emf/emf/updates/2.11.x/core/">2.11.1</a> (2.10.2)</td>
      <td><a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.8.3/">2.8.3</a> (2.7.1)</td>
      <td><a href="http://download.eclipse.org/modeling/m2t/xpand/updates/releases/R201505260349">2.1.0</a> (1.4)</td>
      <td><a href="http://download.eclipse.org/eclipse/updates/4.5/R-4.5.2-201602121500/">4.5.2</a> (3.6)</td>
      <td><a href="http://download.eclipse.org/releases/mars/">Mars SR2*</a></td>
    </tr>
    <tr>
      <td><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.8.4/">2.8.4</a></td>
      <td><a href="http://download.eclipse.org/modeling/emf/emf/updates/2.11.x/core/">2.11.1</a> (2.10.2)</td>
      <td><a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.8.1/">2.8.1</a> (2.7.1)</td>
      <td><a href="http://download.eclipse.org/modeling/m2t/xpand/updates/releases/R201505260349">2.1.0</a> (1.4)</td>
      <td><a href="http://download.eclipse.org/eclipse/updates/4.5/R-4.5-201506032000/">4.5.1</a> (3.6)</td>
      <td><a href="http://download.eclipse.org/releases/mars/">Mars SR1</a></td>
    </tr>
    <tr>
      <td><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.8.3/">2.8.3</a>, <a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.8.2/">2.8.2</a>, <a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.8.1/">2.8.1</a></td>
      <td><a href="http://download.eclipse.org/modeling/emf/emf/updates/2.11/core/R201506010402/">2.11.0</a> (2.10.2)</td>
      <td><a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.8.0/">2.8.0</a> (2.7.1)</td>
      <td><a href="http://download.eclipse.org/modeling/m2t/xpand/updates/releases/R201505260349">2.1.0</a> (1.4)</td>
      <td><a href="http://download.eclipse.org/eclipse/updates/4.5/R-4.5-201506032000/">4.5.0</a> (3.6)</td>
      <td><a href="http://download.eclipse.org/releases/mars/201506241002/">Mars R</a></td>
    </tr>
    <tr>
      <td><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/maintenance/R201411190455/">2.7.3</a></td>
      <td><a href="http://download.eclipse.org/modeling/emf/emf/updates/2.10.x/core/S201501230452/">2.10.2</a> (2.10)</td>
      <td><a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/R201409021051/mwe2lang/">2.7.0</a> <a href="http://download.eclipse.org/modeling/emft/mwe/updates/releases/R201409021027/mwe">1.3.4</a> (2.7.0/1.2)</td>
      <td><a href="http://download.eclipse.org/modeling/m2t/xpand/updates/releases/R201406030414">2.0.0</a> (1.4)</td>
      <td><a href="http://download.eclipse.org/eclipse/updates/4.4/R-4.4.2-201502041700">4.4.2</a> (3.6)</td>
      <td><a href="http://download.eclipse.org/releases/luna/201502271000/">Luna SR2</a></td>
    </tr>
  </tbody>
</table>

<p>The following is an example target platform definition for Xtext 2.25.0 and Eclipse 4.19 alias 2021-03.</p>

<pre><code class="language-xml">&lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&gt;
&lt;?pde version="3.8"?&gt;
&lt;target name="org.xtext.myxtextlanguage.target" sequenceNumber="1"&gt;
&lt;locations&gt;
  &lt;location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="false" type="InstallableUnit"&gt;
    &lt;unit id="org.eclipse.xtext.sdk.feature.group" version="0.0.0"/&gt;
    &lt;repository location="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.25.0/"/&gt;
  &lt;/location&gt;
  &lt;location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="false" type="InstallableUnit"&gt;
    &lt;unit id="org.eclipse.jdt.feature.group" version="0.0.0"/&gt;
    &lt;unit id="org.eclipse.platform.feature.group" version="0.0.0"/&gt;
    &lt;unit id="org.eclipse.pde.feature.group" version="0.0.0"/&gt;
    &lt;unit id="org.eclipse.draw2d.feature.group" version="0.0.0"/&gt;
    &lt;unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/&gt;
    &lt;unit id="org.eclipse.xpand" version="0.0.0"/&gt;
    &lt;unit id="org.eclipse.xtend" version="0.0.0"/&gt;
    &lt;unit id="org.eclipse.xtend.typesystem.emf" version="0.0.0"/&gt;
    &lt;unit id="org.eclipse.emf.mwe2.launcher.feature.group" version="0.0.0"/&gt;
    &lt;repository location="http://download.eclipse.org/releases/2021-03/"/&gt;
  &lt;/location&gt;
&lt;/locations&gt;
&lt;/target&gt;
</code></pre>

          </div>
        </div>
      </div>
    </div>
  </div>
</div>
    
    <footer class="site-footer">
  <div id="extra">
    <div class="inner">
      <div class="container">
        <div class="row">
          <div class="span6">
            <h3 class="footer-links-header">Quick Links</h3>
            <ul class="footer-links clearfix">
              <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
              <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
              <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
              <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
            </ul>
            <ul class="footer-links clearfix">
              <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
              <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
              <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
              <li><a href="https://www.eclipse.org/forums/index.php/f/27/">Xtext Forum</a></li>
            </ul>
          </div>
          <div class="span6">
            <!-- Social Media Links -->
            <h3 class="footer-links-header"">Social Media</h3>
            <ul class="footer-links clearfix">
              <li>
                <a href="https://twitter.com/xtext"><img src="/Xtext/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtext on Twitter</a>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </div>
  </div>
  <a href="#" class="scrollup fadeOutRight animated" style="display: none;">ScrollUp</a>
  <!-- Le javascript
      ================================================== -->
  <!-- Placed at the end of the document so the pages load faster -->
  
  <script src="/Xtext/js/jquery-1.11.3.min.js"></script>
  <script src="/Xtext/js/bootstrap.min.js"></script>
  <script src="/Xtext/js/jquery.easing.1.3.js" type="text/javascript"></script>
  <script src="/Xtext/js/jquery.prettyPhoto.js" type="text/javascript"></script>
  <script src="/Xtext/js/prettify.js" type="text/javascript"></script>
  <script src="/Xtext/js/lang-xtend.js" type="text/javascript"></script>
  <script src="/Xtext/js/lang-common.js" type="text/javascript"></script>
  <script src="/Xtext/js/custom.js" type="text/javascript"></script>
  <!--script src="https://apis.google.com/js/platform.js" async defer></script-->
  <!--script type="text/javascript">
    var _gaq = _gaq || [];  
      _gaq.push([ '_setAccount', 'UA-2429174-3' ]);
    _gaq.push([ '_trackPageview' ]);
    (function() {
      var ga = document.createElement('script');
      ga.type = 'text/javascript';
      ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl'
          : 'http://www')
          + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0];
      s.parentNode.insertBefore(ga, s);
    })();
  </script-->
  <script src="/Xtext/js/coverflow.min.js" type="text/javascript"></script>
  <script>
      $(function() {
        $('#coverflow').coverflow({
          active : 1,
          visibleAside: 2,
          overlap : 0.5,
          scale : 0.9,
          angle : 20,
          trigger : {
            "itemfocus" : true,
            "swipe" : true,
            "mousewheel" : false
          }
        });
        $('#coverflow :hidden').toggle();
        $(window).resize(function() {
          $('#coverflow').coverflow();
        });
      });

  </script>
</footer>


  </body>

</html>
