<project>
  <modelVersion>4.0.0</modelVersion>
  <name>Maven Integration Test Plugin :: it0125</name> 
  <groupId>org.apache.maven.its.it0125</groupId>
  <artifactId>maven-it-it0125-plugin</artifactId>
  <packaging>maven-plugin</packaging>
  <description>Plugin that writes the resolved artifacts to a file.</description>
  <version>1.0</version>
  <dependencies>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-plugin-api</artifactId>
      <version>2.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-artifact</artifactId>
      <version>2.0</version>
    </dependency>
  </dependencies>
</project>
