<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.eclipse.epsilon</groupId>
    <artifactId>parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath>../../pom.xml</relativePath>
  </parent>

  <groupId>org.eclipse.epsilon</groupId>
  <artifactId>org.eclipse.epsilon.standalone</artifactId>
  <version>1.5.1-SNAPSHOT</version>
  <packaging>eclipse-plugin</packaging>

  <build>
    <plugins>
      <!-- Needed for the kitchensink JAR file -->
      <plugin>
	<artifactId>maven-dependency-plugin</artifactId>
	<version>2.10</version>
	<executions>
	  <execution>
	    <id>copy</id>
	    <goals>
	      <goal>copy-dependencies</goal>
	    </goals>
	  </execution>
	  <execution>
	    <id>unpack</id>
	    <goals>
	      <goal>unpack-dependencies</goal>
	    </goals>
	    <configuration>
	      <includeArtifactIds><!-- Match MANIFEST.MF -->
	        org.apache.ant,
			org.eclipse.emf.common,
			org.eclipse.emf.ecore,
			org.eclipse.emf.ecore.xmi,
			org.eclipse.xtext,
			org.eclipse.xtext.xbase,
			org.eclipse.emf.codegen,
			org.eclipse.emf.codegen.ecore,
			org.eclipse.emf.codegen.ecore.xtext,
			org.eclipse.emf.mwe2.runtime,
			org.eclipse.core.runtime,
			org.eclipse.xsd,
			org.eclipse.uml2.uml,
			org.eclipse.uml2.common,
			org.eclipse.emf.mapping.ecore2xml,
			org.eclipse.uml2.types,
			org.apache.poi.ooxml.schemas_3.10.1,
			org.apache.poi.ooxml_3.10.1,
			org.apache.poi_3.10.1,
			org.apache.commons.collections,
			org.apache.commons.lang3
		    </includeArtifactIds>
	      <outputDirectory>target/dependency-unpacked</outputDirectory>
	    </configuration>
	  </execution>
	</executions>
      </plugin>

      <!-- Note: this requires that everything else has been built already -->
      <plugin>
	<artifactId>maven-assembly-plugin</artifactId>
	<version>2.6</version>
	<executions>
	  <execution>
	    <id>generate-jars</id>
	    <phase>package</phase>
	    <goals>
	      <goal>single</goal>
	    </goals>
	    <configuration>
	      <finalName>epsilon-1.5</finalName>
	      <descriptors>
		<descriptor>assembly/core.xml</descriptor>
		<descriptor>assembly/core-src.xml</descriptor>
		<descriptor>assembly/core-sources.xml</descriptor>
		<descriptor>assembly/emf.xml</descriptor>
		<descriptor>assembly/emf-src.xml</descriptor>
		<descriptor>assembly/emf-sources.xml</descriptor>
		<descriptor>assembly/emf-deps.xml</descriptor>
		<descriptor>assembly/uml.xml</descriptor>
		<descriptor>assembly/uml-src.xml</descriptor>
		<descriptor>assembly/uml-sources.xml</descriptor>
		<descriptor>assembly/uml-deps.xml</descriptor>
		<descriptor>assembly/graphml.xml</descriptor>
		<descriptor>assembly/graphml-src.xml</descriptor>
		<descriptor>assembly/graphml-sources.xml</descriptor>
		<descriptor>assembly/simulink.xml</descriptor>
		<descriptor>assembly/simulink-src.xml</descriptor>
		<descriptor>assembly/simulink-sources.xml</descriptor>		
		<descriptor>assembly/hutn.xml</descriptor>
		<descriptor>assembly/hutn-src.xml</descriptor>
		<descriptor>assembly/hutn-sources.xml</descriptor>
		<descriptor>assembly/spreadsheets-deps.xml</descriptor>
		<descriptor>assembly/spreadsheets-sources.xml</descriptor>
		<descriptor>assembly/spreadsheets-src.xml</descriptor>
		<descriptor>assembly/spreadsheets.xml</descriptor>
		<descriptor>assembly/workflow.xml</descriptor>
		<descriptor>assembly/workflow-src.xml</descriptor>
		<descriptor>assembly/workflow-sources.xml</descriptor>
		<descriptor>assembly/workflow-emf.xml</descriptor>
		<descriptor>assembly/workflow-emf-src.xml</descriptor>
		<descriptor>assembly/workflow-emf-sources.xml</descriptor>
		<descriptor>assembly/kitchensink.xml</descriptor>
	      </descriptors>
	    </configuration>
	  </execution>
	</executions>
      </plugin>

      <plugin>
        <groupId>org.codehaus.gmavenplus</groupId>
        <artifactId>gmavenplus-plugin</artifactId>
        <version>1.5</version>
        <dependencies>
          <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <!-- any version of Groovy \>= 1.5.0 should work here -->
            <version>2.4.7</version>
            <scope>runtime</scope>
          </dependency>
	  <dependency>
	    <groupId>org.twdata.maven</groupId>
	    <artifactId>mojo-executor</artifactId>
	    <version>2.2.0</version>
	  </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>
</project>
