<?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.flex</groupId>
        <artifactId>flex-plugin-parent</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </parent>

    <groupId>org.apache.flex.plugins</groupId>
    <artifactId>plugins</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>Maven-Flex-Plugin / Plugins</name>

    <modules>
        <!-- Plugin for actually performing the flex builds -->
        <module>maven-flex-plugin</module>
        <!-- Plugin for generating the maven artifacts for performing flex maven builds -->
        <module>maven-mavenizer-plugin</module>
    </modules>

</project>