<?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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-parent</artifactId>
    <version>24</version>
    <relativePath>../pom/maven/pom.xml</relativePath>
  </parent>

  <groupId>org.apache.maven.shared</groupId>
  <artifactId>maven-shared-aggregator</artifactId>
  <version>1-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Maven Shared Components Aggregator</name>
  <description>Maven shared components Aggregator</description>
  <url>http://maven.apache.org/shared/</url>

  <scm>
    <connection>scm:svn:http://svn.apache.org/repos/asf/maven/shared/trunk/</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/shared/trunk/</developerConnection>
    <url>http://svn.apache.org/viewvc/maven/shared/trunk/</url>
  </scm>

  <modules>
    <module>maven-shared-utils</module>
    <module>maven-shared-incremental</module>
    <module>file-management</module>
    <module>maven-archiver</module>
    <module>maven-common-artifact-filters</module>
    <module>maven-dependency-analyzer</module>
    <module>maven-dependency-tree</module>
    <module>maven-downloader</module>
    <module>maven-filtering</module>
    <module>maven-invoker</module>
    <module>maven-mapping</module>
    <module>maven-osgi</module>
    <module>maven-project-utils</module>
    <module>maven-reporting-api</module>
    <module>maven-reporting-impl</module>
    <module>maven-repository-builder</module>
    <module>maven-runtime</module>
    <module>maven-shared-io</module>
    <module>maven-shared-jar</module>
    <module>maven-shared-resources</module>
    <module>maven-verifier</module>
    <module>maven-jarsigner</module>
    <module>maven-script-interpreter</module>
  </modules>

  <profiles>
    <profile>
      <id>jre-1.5+</id>
      <activation>
        <jdk>!1.4</jdk>
      </activation>
      <modules>
        <module>maven-artifact-resolver</module>
      </modules>
    </profile>
    <profile>
      <id>maven-3</id>
      <activation>
        <file>
          <!--  This employs that the basedir expression is only recognized by Maven 3.x (see MNG-2363) -->
          <exists>${basedir}</exists>
        </file>
      </activation>
      <modules>
        <module>maven-artifact-transfer</module>
        <module>maven-reporting-exec</module>
      </modules>
    </profile>
  </profiles>
</project>
