<?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.
-->

<antlib>
  <!-- Tasks -->
  <taskdef name="dependencies" classname="org.apache.maven.artifact.ant.DependenciesTask"/>
  <taskdef name="install" classname="org.apache.maven.artifact.ant.InstallTask"/>
  <taskdef name="deploy" classname="org.apache.maven.artifact.ant.DeployTask"/>
  <taskdef name="install-provider" classname="org.apache.maven.artifact.ant.InstallWagonProviderTask"/>
  <taskdef name="mvn" classname="org.apache.maven.artifact.ant.Mvn"/>
  <taskdef name="writepom" classname="org.apache.maven.artifact.ant.WritePomTask"/>

  <!-- Types -->
  <typedef name="localRepository" classname="org.apache.maven.artifact.ant.LocalRepository"/>
  <typedef name="remoteRepository" classname="org.apache.maven.artifact.ant.RemoteRepository"/>
  <typedef name="authentication" classname="org.apache.maven.artifact.ant.Authentication"/>
  <typedef name="proxy" classname="org.apache.maven.artifact.ant.Proxy"/>

  <!-- Tasks that are also types -->
  <taskdef name="pom" classname="org.apache.maven.artifact.ant.Pom"/>
</antlib>
