<?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">
  <parent>
    <artifactId>maven-plugins</artifactId>
    <groupId>org.apache.maven.plugins</groupId>
    <version>11</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>maven-checkstyle-plugin</artifactId>
  <packaging>maven-plugin</packaging>
  <name>Maven Checkstyle Plugin</name>
  <version>2.2</version>
  <prerequisites>
    <maven>2.0.6</maven>
  </prerequisites>
  <issueManagement>
    <system>JIRA</system>
    <url>http://jira.codehaus.org/browse/MCHECKSTYLE</url>
  </issueManagement>
  <inceptionYear>2005</inceptionYear>
  <mailingLists>
    <!-- duplication from maven-plugins pom - temporary until they inherit properly
    -->
    <mailingList>
      <name>Maven User List</name>
      <subscribe>users-subscribe@maven.apache.org</subscribe>
      <unsubscribe>users-unsubscribe@maven.apache.org</unsubscribe>
      <post>users@maven.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/maven-users</archive>
      <otherArchives>
        <otherArchive>http://www.mail-archive.com/users@maven.apache.org/</otherArchive>
        <otherArchive>http://www.nabble.com/Maven---Users-f178.html</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Maven Developer List</name>
      <subscribe>dev-subscribe@maven.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@maven.apache.org</unsubscribe>
      <post>dev@maven.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/maven-dev</archive>
    </mailingList>
    <mailingList>
      <name>Maven Commits List</name>
      <subscribe>commits-subscribe@maven.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@maven.apache.org</unsubscribe>
      <post>commits@maven.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/maven-dev</archive>
    </mailingList>
    <!-- duplication from maven-parent pom - temporary until they inherit properly 
    -->
    <mailingList>
      <name>Maven Announcements List</name>
      <post>announce@maven.apache.org</post>
      <subscribe>announce-subscribe@maven.apache.org</subscribe>
      <unsubscribe>announce-unsubscribe@maven.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/maven-announce/</archive>
    </mailingList>
    <mailingList>
      <name>Maven Issues List</name>
      <post>issues@maven.apache.org</post>
      <subscribe>issues-subscribe@maven.apache.org</subscribe>
      <unsubscribe>issues-unsubscribe@maven.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/maven-issues/</archive>
    </mailingList>
    <mailingList>
      <name>Maven Notifications List</name>
      <post>notifications@maven.apache.org</post>
      <subscribe>notifications-subscribe@maven.apache.org</subscribe>
      <unsubscribe>notifications-unsubscribe@maven.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/maven-notifications/</archive>
    </mailingList>
  </mailingLists>
  <contributors>
    <contributor>
      <name>Joakim Erdfelt</name>
      <email>joakim@erdfelt.com</email>
    </contributor>
  </contributors>
  <scm>
    <connection>scm:svn:http://svn.apache.org/repos/asf/maven/plugins/tags/maven-checkstyle-plugin-2.2</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/plugins/tags/maven-checkstyle-plugin-2.2</developerConnection>
    <url>http://svn.apache.org/viewvc/maven/plugins/tags/maven-checkstyle-plugin-2.2</url>
  </scm>
  <dependencies>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-artifact</artifactId>
      <version>2.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-model</artifactId>
      <version>2.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-plugin-api</artifactId>
      <version>2.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-project</artifactId>
      <version>2.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.reporting</groupId>
      <artifactId>maven-reporting-api</artifactId>
      <version>2.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.reporting</groupId>
      <artifactId>maven-reporting-impl</artifactId>
      <version>2.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.shared</groupId>
      <artifactId>maven-doxia-tools</artifactId>
      <version>1.0</version>
    </dependency>
    <dependency>
      <groupId>org.codehaus.plexus</groupId>
      <artifactId>plexus-container-default</artifactId>
      <version>1.0-alpha-9</version>
    </dependency>
    <dependency>
      <groupId>org.codehaus.plexus</groupId>
      <artifactId>plexus-resources</artifactId>
      <version>1.0-alpha-4</version>
    </dependency>
    <dependency>
      <groupId>org.codehaus.plexus</groupId>
      <artifactId>plexus-utils</artifactId>
      <version>1.4.4</version>
    </dependency>
    <dependency>
      <groupId>org.codehaus.plexus</groupId>
      <artifactId>plexus-velocity</artifactId>
      <version>1.1.2</version>
      <exclusions>
        <exclusion>
          <!-- Use the version specified by checkstyle:checkstyle instead -->
          <artifactId>commons-collections</artifactId>
          <groupId>commons-collections</groupId>
        </exclusion>
        <exclusion>
          <artifactId>plexus-utils</artifactId>
          <groupId>plexus</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>checkstyle</groupId>
      <artifactId>checkstyle</artifactId>
      <version>4.4</version>
    </dependency>
    <dependency>
      <groupId>checkstyle</groupId>
      <artifactId>checkstyle-optional</artifactId>
      <version>4.4</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.shared</groupId>
      <artifactId>maven-plugin-testing-harness</artifactId>
      <version>1.0-beta-1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
