<project>
  <pomVersion>3</pomVersion>
  <id>gram</id>
  <groupId>groovy</groupId>
  <artifactId>gram</artifactId>
  <name>gram</name>
  <currentVersion>1.2-SNAPSHOT</currentVersion>
  <organization>
    <name>The Codehaus</name>
    <url>http://codehaus.org</url>
    <logo>http://codehaus.org/codehaus-small.gif</logo>
  </organization>
  <inceptionYear>2004</inceptionYear>
  <package>org.codehaus.gram</package>
  <description>Gram is a metadata processing engine for Groovy</description>
  <url>http://groovy.codehaus.org/</url>
  <issueTrackingUrl>http://jira.codehaus.org/secure/BrowseProject.jspa?id=10242&amp;report=roadmap</issueTrackingUrl>

  <siteAddress>beaver.codehaus.org</siteAddress>
  <siteDirectory>/home/projects/groovy/public_html/gram/maven</siteDirectory>
  <distributionDirectory>/home/projects/groovy/dist</distributionDirectory>

  <repository>
    <connection>scm:cvs:pserver:anonymous@cvs.codehaus.org:/scm/cvspublic:groovy/modules/gram</connection>
    <developerConnection>scm:cvs:ext:${maven.username}@cvs.codehaus.org:/scm/cvspublic:groovy/modules/gram</developerConnection>
    <url>http://cvs.groovy.codehaus.org/viewcvs.cgi/groovy/modules/gram</url>
  </repository>
  <versions/>
  <branches/>
  <mailingLists/>
  <developers>
    <developer>
      <id>jstrachan</id>
      <name>James Strachan</name>
      <roles>
        <role>Developer</role>
        <role>Founder</role>
      </roles>
    </developer>
  </developers>

  <dependencies>
    <dependency>
      <groupId>groovy</groupId>
      <artifactId>groovy-all</artifactId>
      <version>1.0-jsr-03</version>
      <type>jar</type>
      <properties/>
    </dependency>

    <dependency>
      <id>annogen</id>
      <version>0.1.0</version>
    </dependency>

    <dependency>
      <groupId>ant</groupId>
      <artifactId>ant</artifactId>
      <version>1.6.2</version>
    </dependency>
  </dependencies>

  <build>
    <nagEmailAddress>scm@groovy.codehaus.org</nagEmailAddress>
    <sourceDirectory>src/main</sourceDirectory>
    <unitTestSourceDirectory>src/test</unitTestSourceDirectory>
    <unitTest>
      <includes>
        <include>**/*Test.*</include>
        <include>**/*Bug.*</include>
      </includes>
      <resources>
        <resource>
          <directory>src/test</directory>
          <filtering>false</filtering>
          <includes>
            <include>**/*.properties</include>
            <include>**/*.xml</include>
          </includes>
        </resource>
      </resources>
    </unitTest>
    <resources>
      <resource>
        <directory>src/main</directory>
        <filtering>false</filtering>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
      </resource>
    </resources>
  </build>
  <reports>
    <report>maven-license-plugin</report>
    <report>maven-checkstyle-plugin</report>
    <report>maven-pmd-plugin</report>
    <report>maven-jdepend-plugin</report>
    <report>maven-changelog-plugin</report>
    <report>maven-file-activity-plugin</report>
    <report>maven-developer-activity-plugin</report>
    <report>maven-jxr-plugin</report>
    <report>maven-javadoc-plugin</report>
    <report>maven-junit-report-plugin</report>
    <report>maven-faq-plugin</report>
    <report>maven-clover-plugin</report>
    <report>maven-changes-plugin</report>
  </reports>
</project>