<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements.  See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership.  The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License.  You may obtain a copy of the License at
  ~
  ~   http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied.  See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->
<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>
  <groupId>org.apache.maven.plugin.release.its</groupId>
  <artifactId>mrelease-161</artifactId>
  <version>1.0-SNAPSHOT</version>
  <description>This is the base POM the release test modules</description>
  <packaging>pom</packaging>
  <name>O2 Release test Base Module</name>
  <modules>
    <module>release-test-module-one</module>
    <module>release-test-module-two</module>
  </modules>
  <scm>
    <connection>scm:git|sd_pa/tools/release-test</connection>
  </scm>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>@project.version@</version>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <distributionManagement>
    <repository>
      <id>o2-webdav</id>
      <url>${repository.o2.webdav}</url>
    </repository>
    <snapshotRepository>
      <id>o2-webdav</id>
      <url>${repository.o2.webdav}</url>
    </snapshotRepository>
    <site>
      <url>
        dav:${o2.module.sites.rootUrl}/${project.groupId}/${project.artifactId}-${project.version}</url>
    </site>
  </distributionManagement>
</project>
