<?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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	
	<groupId>org.eclipse.objectteams</groupId>
	<artifactId>infrastructure-parent</artifactId>
	<version>2.7.6</version>
	<packaging>pom</packaging>
	
	<name>Object Teams infrastructure parent pom</name>

	<url>http://download.eclipse.org/objectteams/maven/3/sites/${project.artifactId}</url>

	<description>
		This is the parent pom for releasing Object Teams artifacts for use in Maven3.
	</description>

	<licenses>
		<license>
			<name>Eclipse Public License Version 1.0</name>
			<comments>
				This file is part of "Object Teams Development Tooling"-Software.

				Copyright 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:
					Stephan Herrmann - Initial API and implementation.
			</comments>
		</license>
	</licenses>

	<organization>
		<name>Eclipse Object Teams Project</name>
		<url>http://www.eclipse.org/objectteams</url>
	</organization>
	
	<developers>
		<developer><name>Stephan Herrmann</name><organization>GK Software SE</organization></developer>
	</developers>

	<mailingLists>
		<mailingList><name>Object Teams Forum</name><archive>http://www.eclipse.org/forums/eclipse.objectteams</archive></mailingList>
	</mailingLists>
	
	<issueManagement>
		<system>Bugzilla</system>
		<url>http://bugs.eclipse.org/bugs</url>
	</issueManagement>

	<distributionManagement>
		<repository>
			<id>otRepo</id>
			<name>Object Teams repository for Maven 3</name>
			<url>${protocol}://${ot.host}:${ot.maven.repository.basepath}/repository/${project.artifactId}</url>
		</repository>
		<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>

	<repositories>
		<repository>
			<id>ObjectTeamsRepository</id>
			<name>Object Teams Repository</name>
			<url>http://download.eclipse.org/objectteams/maven/3/repository</url>
		</repository>
	</repositories>

	<scm>
		<url>http://git.eclipse.org/c/objectteams/org.eclipse.objectteams.git</url>
	</scm>
	

	<modules>
		<module>parent-pom/pom.xml</module>
		<module>parent-pom-otdre/pom.xml</module>
		<module>artifact-deployer/pom.xml</module>
	</modules>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-site-plugin</artifactId>
				<version>3.8.2</version>
				<configuration>
					<skip>true</skip>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
				<version>2.7</version>
				<configuration>
					<skip>true</skip>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
