<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2015 l33t labs LLC.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Distribution License v1.0
  which accompanies this distribution, and is available at
  http://www.eclipse.org/org/documents/edl-v10.php
 
  Contributors:
     Tony McCrary - initial implementation
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.eclipse</groupId>
    <artifactId>eclipse-platform-parent</artifactId>
    <version>4.23.0-SNAPSHOT</version>
    <relativePath>../eclipse-platform-parent</relativePath>
  </parent>

  <groupId>eclipse.images</groupId>
  <artifactId>org.eclipse.images.parent</artifactId>
  <packaging>pom</packaging>
  <name>Eclipse Images</name>

  <properties>
    <tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/platform/eclipse.platform.images.git</tycho.scmUrl>
  </properties>

  <repositories>
    <repository>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>eclipse-hosted</id>
      <url>https://repo.eclipse.org/content/repositories/eclipse/</url>
    </repository>
  </repositories>

  <modules>
    <module>org.eclipse.images</module>
    <module>org.eclipse.images.renderer</module>
  </modules>
  <build>
  	<pluginManagement>
  		<plugins>
  			<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
  			<plugin>
  				<groupId>org.eclipse.m2e</groupId>
  				<artifactId>lifecycle-mapping</artifactId>
  				<version>1.0.0</version>
  				<configuration>
  					<lifecycleMappingMetadata>
  						<pluginExecutions>
  							<pluginExecution>
  								<pluginExecutionFilter>
  									<groupId>
  										org.eclipse.cbi.maven.plugins
  									</groupId>
  									<artifactId>
  										eclipse-cbi-plugin
  									</artifactId>
  									<versionRange>
  										[1.0.5,)
  									</versionRange>
  									<goals>
  										<goal>
  											generate-api-build-xml
  										</goal>
  									</goals>
  								</pluginExecutionFilter>
  								<action>
  									<ignore></ignore>
  								</action>
  							</pluginExecution>
  						</pluginExecutions>
  					</lifecycleMappingMetadata>
  				</configuration>
  			</plugin>
  		</plugins>
  	</pluginManagement>
  </build>
</project>
