<?xml version="1.0" encoding="UTF-8"?>
<!--#======================================================================= -->
<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany). -->
<!--# All rights reserved. This program and the accompanying materials -->
<!--# are made available under the terms of the Eclipse Public License 2.0  -->
<!--# which accompanies this distribution, and is available at -->
<!--# https://www.eclipse.org/legal/epl-2.0/    -->
<!--#                                           -->
<!--# SPDX-License-Identifier: EPL-2.0          -->
<!--# -->
<!--# Contributors: -->
<!--# Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation API and 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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.eclipse.osbp.gitinfo</groupId>
        <artifactId>org.eclipse.osbp.gitinfo.aggregator</artifactId>
        <version>0.9.0-SNAPSHOT</version>
    </parent>

    <artifactId>org.eclipse.osbp.gitinfo.feature</artifactId>
    <packaging>eclipse-feature</packaging>

    <build>
        <plugins>
            <plugin>
                <groupId>org.eclipse.tycho.extras</groupId>
                <artifactId>tycho-source-feature-plugin</artifactId>
                <version>${tychoExtrasVersion}</version>
                <executions>
                    <execution>
                        <id>source-feature</id>
                        <phase>package</phase>
                        <goals>
                            <goal>source-feature</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <labelSuffix> (source)</labelSuffix>
                </configuration>
            </plugin>
            <plugin>
                <!-- workaround while bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=398250 
					is not fixed -->
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-p2-plugin</artifactId>
                <version>${tycho-version}</version>
                <executions>
                    <execution>
                        <id>attached-p2-metadata</id>
                        <phase>package</phase>
                        <goals>
                            <goal>p2-metadata</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
			<plugin>
				<artifactId>maven-javadoc-plugin</artifactId>
				<executions>
					<execution>
						<id>javadoc-jar</id>
						<phase>package</phase>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>org.eclipse.osbp.gitinfo</groupId>
            <artifactId>org.eclipse.osbp.gitinfo</artifactId>
            <version>0.9.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

</project>
