<?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.1</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>
