<?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.
-->
<!--
  This POM has been created manually by the Ant Development Team.
  Please contact us if you are not satisfied with the data contained in this POM.
  URL : http://ant.apache.org
-->
<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>
    <groupId>org.apache.ant</groupId>
    <artifactId>ant-parent</artifactId>
    <relativePath>../pom.xml</relativePath>
    <version>1.9.15</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <url>http://ant.apache.org/</url>
  <groupId>org.apache.ant</groupId>
  <artifactId>ant</artifactId>
  <version>1.9.15</version>
  <name>Apache Ant Core</name>
  <dependencies>
    <dependency>
      <groupId>org.apache.ant</groupId>
      <artifactId>ant-launcher</artifactId>
      <version>1.9.15</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.ant</groupId>
      <artifactId>ant-antunit</artifactId>
      <version>1.3</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.apache.ant</groupId>
          <artifactId>ant</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.ant</groupId>
          <artifactId>ant-launcher</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>
  <build>
    <filters>
      <filter>../../../../target/ant/.build.timestamp.properties</filter>
    </filters>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration> </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>create-timestamp-file</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <tasks>
                <tstamp/>
                <mkdir dir="${project.build.directory}"/>
                <touch file="${project.build.directory}/.build.timestamp.properties"/>
                <echo file="${project.build.directory}/.build.timestamp.properties" append="false"
                  message="TODAY=${TODAY}"/>
              </tasks>
            </configuration>
          </execution>
          <execution>
            <id>delete-timestamp-file</id>
            <phase>clean</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <tasks>
                <delete file="${project.build.directory}/.build.timestamp.properties"/>
              </tasks>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>org/apache/tools/ant/filters/util/JavaClassHelper*</exclude>
            <exclude>org/apache/tools/ant/types/resolver/**</exclude>
            <exclude>org/apache/tools/ant/listener/Log4jListener*</exclude>
            <exclude>org/apache/tools/ant/listener/CommonsLoggingListener*</exclude>
            <exclude>org/apache/tools/ant/util/regexp/JakartaRegexp*</exclude>
            <exclude>org/apache/tools/ant/util/regexp/JakartaOro*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/email/MimeMailer*</exclude>
            <exclude>org/apache/tools/ant/launch/**</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/net/FTP*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/net/RExec*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/net/TelnetTask*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/junit/*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/ssh/*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/image/*</exclude>
            <exclude>org/apache/tools/ant/types/optional/image/*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/Script*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/script/**</exclude>
            <exclude>org/apache/tools/ant/types/optional/*Script*</exclude>
            <exclude>org/apache/tools/ant/util/ScriptRunner.java</exclude>
            <exclude>org/apache/tools/ant/util/optional/ScriptRunner.java</exclude>
            <exclude>org/apache/tools/ant/filters/util/JavaClassHelper*</exclude>
            <exclude>org/apache/tools/ant/util/depend/bcel/*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/NetRexxC*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/Xalan2TraceSupport*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/jdepend/*</exclude>
          </excludes>
          <testExcludes>
            <exclude>org/apache/tools/ant/filters/util/JavaClassHelper*</exclude>
            <exclude>org/apache/tools/ant/types/resolver/**</exclude>
            <exclude>org/apache/tools/ant/util/Script*</exclude>
            <exclude>org/apache/tools/ant/listener/Log4jListener*</exclude>
            <exclude>org/apache/tools/ant/listener/CommonsLoggingListener*</exclude>
            <exclude>org/apache/tools/ant/util/regexp/JakartaRegexp*</exclude>
            <exclude>org/apache/tools/ant/util/regexp/JakartaOro*</exclude>
            <exclude>org/apache/tools/ant/util/regexp/Jdk14Regexp*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/email/MimeMailer*</exclude>
            <exclude>org/apache/tools/ant/launch/**</exclude>
            <exclude>org/apache/tools/ant/taskdefs/StyleTest*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/junit/</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/net/FTP*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/ssh/*</exclude>
          </testExcludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <basedir>../../../..</basedir>
          <systemProperties>
            <property>
              <name>ant.home</name>
              <value>${env.ANT_HOME}</value>
            </property>
            <property>
              <name>build.tests</name>
              <value>../../../../target/ant/testcases</value>
            </property>
            <property>
              <name>build.tests.value</name>
              <value>../../../../target/ant/testcases</value>
            </property>
            <property>
              <name>offline</name>
              <value>true</value>
            </property>
          </systemProperties>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
      </plugin>
    </plugins>
    <resources>
      <resource>
        <directory>../../../../src/main</directory>
        <filtering>true</filtering>
        <includes>
          <include>org/apache/tools/ant/taskdefs/default.properties</include>
          <include>org/apache/tools/ant/types/default.properties</include>
          <include>org/apache/tools/ant/taskdefs/default.properties</include>
          <include>org/apache/tools/ant/types/conditions/antlib.xml</include>
          <include>org/apache/tools/ant/defaultManifest.mf</include>
          <include>org/apache/tools/ant/version.txt</include>
        </includes>
      </resource>
      <resource>
        <directory>../../../../src/resources</directory>
        <filtering>true</filtering>
        <includes>
          <include>**/antlib.xml</include>
        </includes>
      </resource>
      <resource>
        <directory>../../../../docs</directory>
        <filtering>false</filtering>
        <includes>
          <include>images/ant_logo_large.gif</include>
        </includes>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>../../../../src/etc/testcases</directory>
        <filtering>true</filtering>
      </testResource>
      <testResource>
        <directory>../../../../src/main</directory>
        <filtering>true</filtering>
        <excludes>
          <exclude>**/*.java</exclude>
        </excludes>
      </testResource>
    </testResources>
    <sourceDirectory>../../../../src/main</sourceDirectory>
    <testSourceDirectory>../../../../src/tests/junit</testSourceDirectory>
    <outputDirectory>../../../../target/ant/classes</outputDirectory>
    <testOutputDirectory>../../../../target/ant/testcases</testOutputDirectory>
    <directory>../../../../target/ant</directory>
  </build>
</project>
