<?xml version="1.0" encoding="UTF-8"?>
<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.objectteams</groupId>
		<artifactId>objectteams-otdre-parent-pom</artifactId>
		<version>2.7.6</version>
	</parent>

	<packaging>jar</packaging>
        
	<artifactId>objectteams-compile-test</artifactId>
	<version>1.1.6</version>
	<name>Object Teams test project</name>

	<!-- simply repeat this declaration from the parent pom, otherwise Maven duplicates the artifactId in the path -->
	<url>http://download.eclipse.org/objectteams/maven/3/sites/${project.artifactId}</url>

	<description>
		This module demonstrates how to use Maven3 for compiling and running OT/J programs.
	</description>
    
	<licenses>
		<license>
			<name>Eclipse Public License Version 1.0</name>
			<comments>
				This file is part of "Object Teams Development Tooling"-Software

				Copyright 2010, 2019 GK Software SE and others.
				All rights reserved. This program and the accompanying materials
				are made available under the terms of the Eclipse Public License v1.0
				which accompanies this distribution, and is available at
				http://www.eclipse.org/legal/epl-v10.html

				Please visit http://www.eclipse.org/objectteams for updates and contact.

				Contributors:
					Olaf Otto - Initial concept
					Stephan Herrmann - Initial API and implementation
			</comments>
		</license>
	</licenses>

	<repositories>
		<!-- needed for finding the parent-pom: -->
		<repository>
			<id>ObjectTeamsRepository</id>
			<name>Object Teams Repository</name>
			<url>http://download.eclipse.org/objectteams/maven/3/repository</url>
		</repository>
    </repositories>

    <properties>
    	<!-- Relative path of this module: -->
    	<project-repository-path>maven/testproject</project-repository-path>
    	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    
    <!-- Override inherited declaration, otherwise Maven appends the artifactId to the path -->
	<scm>
	    <connection>scm:git:git://git.eclipse.org/gitroot/objectteams/org.eclipse.objectteams.git/${project-repository-path}</connection>
	    <developerConnection>scm:git:ssh://${username}@git.eclipse.org/gitroot/objectteams/org.eclipse.objectteams.git/${project-repository-path}</developerConnection>
	    <url>http://git.eclipse.org/c/objectteams/org.eclipse.objectteams.git/${project-repository-path}</url>
	</scm>

	<!-- simply repeat this declaration from the parent pom, otherwise Maven duplicates the artifactId in the path -->
	<distributionManagement>
		<site>
			<id>otSiteRepo</id>
			<name>Object Teams sites repository for Maven 3</name>
			<url>${protocol}://${ot.host}:${ot.maven.repository.basepath}/sites/${project.artifactId}</url>
		</site>
	</distributionManagement>

	<dependencies>
		<!-- Testing: -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.6</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<reporting>
		<plugins>
			<!-- See http://mojo.codehaus.org/jdepend-maven-plugin/ -->
			<plugin>
			        <groupId>org.codehaus.mojo</groupId>
			        <artifactId>jdepend-maven-plugin</artifactId>
			        <version>2.0-beta-2</version>
			</plugin>
			<!-- See http://mojo.codehaus.org/taglist-maven-plugin/ -->
			<plugin>
			        <groupId>org.codehaus.mojo</groupId>
			        <artifactId>taglist-maven-plugin</artifactId>
			        <version>2.4</version>
			</plugin>
			<!-- See http://maven.apache.org/plugins/maven-javadoc-plugin/ -->
			<!-- Disabled as it cannot parse OT sources. -->
			<!--
			        >plugin> <groupId>org.apache.maven.plugins</groupId>
			        <artifactId>maven-javadoc-plugin</artifactId> </plugin -->
		</plugins>
	</reporting>
</project>
