<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.easymock</groupId>
  <artifactId>easymock</artifactId>
  <version>2.4</version>
  <packaging>jar</packaging>
  <name>EasyMock</name>
  <url>http://www.easymock.org</url>
  <description>EasyMock provides an easy way to create Mock Objects for interfaces by generating them on the fly using Java's proxy mechanism</description>
  <licenses>
    <license>
      <name>MIT License</name>
      <url>http://www.easymock.org/License.html</url>
      <distribution>repo</distribution>
    </license>
  </licenses>
  <developers>
    <developer>
      <id>tammo</id>
      <name>Tammo Freese</name>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <id>henri</id>
      <name>Henri Tremblay</name>
      <url>http://www.jroller.com/Henri/</url>
      <organization>Ossia Conseil</organization>
      <organizationUrl>http://ossia-conseil.com</organizationUrl>      
      <timezone>+1</timezone>
    </developer>    
  </developers>  
  <issueManagement>
    <system>SourceForge</system>
    <url>http://sourceforge.net/tracker/?group_id=82958</url>
  </issueManagement>  
  <mailingLists>
    <mailingList>
      <name>User List</name>
      <subscribe>From Yahoo groups</subscribe>
      <unsubscribe>easymock-unsubscribe@yahoogroups.com</unsubscribe>
      <post>easymock@yahoogroups.com</post>
      <archive>http://tech.groups.yahoo.com/group/easymock/</archive>
    </mailingList>
  </mailingLists>  
  <scm>
    <url>http://easymock.cvs.sourceforge.net/easymock/</url>
    <developerConnection>scm:cvs:ext:username@easymock.cvs.sourceforge.net:/cvsroot/easymock:easymock</developerConnection>
    <connection>scm:cvs:pserver:anonymous@easymock.cvs.sourceforge.net:/cvsroot/easymock:easymock</connection>
  </scm>  
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.4</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <sourceDirectory>${basedir}/src</sourceDirectory>
    <testSourceDirectory>${basedir}/src-tests</testSourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <index>true</index>
            <manifestEntries>
              <EasyMock-Version>${pom.version}</EasyMock-Version>
            </manifestEntries>
          </archive>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-sources</id>
            <phase>verify</phase>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>	  
	  </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-javadocs</id>
            <phase>verify</phase>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>	  
	  </plugin>	  
      <!-- plugin>
        <artifactId>maven-clover-plugin</artifactId>
        <version>2.4</version>
        <configuration>
        <licenseLocation>${basedir}/lib/clover.license</licenseLocation>
        <jdk>1.5</jdk>
        </configuration>
        <executions>
        <execution>
        <phase>verify</phase>
        <configuration>
        <targetPercentage>100%</targetPercentage>
        </configuration>
        <goals>
        <goal>instrument</goal>
        <goal>check</goal>
        </goals>
        </execution>
        </executions>
        </plugin-->
    </plugins>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-ssh-external</artifactId>
        <version>1.0-beta-2</version>
      </extension>
    </extensions>
  </build>
  <reporting>
    <plugins>
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <excludePackageNames>*.internal</excludePackageNames>
          <bottom><![CDATA[<i>Copyright &#169; 2001-2008 OFFIS, Tammo Freese. This documentation is provided under the terms of the MIT licence.</i>]]></bottom>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
  <distributionManagement>
    <repository>
      <id>easymock-release</id>
      <name>EasyMock Repository</name>
      <url>scpexe://shell.sf.net/home/groups/e/ea/easymock/htdocs/maven/repository</url>
    </repository>
    <snapshotRepository>
      <id>easymock-snapshot</id>
      <name>EasyMock Snapshot Repository</name>
      <url>scpexe://shell.sf.net/home/groups/e/ea/easymock/htdocs/maven/repository-snapshot</url>
    </snapshotRepository>
  </distributionManagement>
</project>
