<project>
  <modelVersion>4.0.0</modelVersion>
  <name>Maven Integration Test :: it0000</name> 
  <groupId>org.apache.maven.its.it0000</groupId>
  <artifactId>maven-it-it0000</artifactId>
  <description>The simplest of builds. We have one application class and one test
        class. There are no resources, no source generation, no resource
        generation and a the super model is employed to provide the build
        information.</description>
  <packaging>jar</packaging>
  <version>1.0</version>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <type>jar</type>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
