| ------ |
| Task and Type Reference |
| ------ |
| Brett Porter |
| Hervé Boutemy |
| ------ |
| 2008-07-17 |
| ------ |
| |
| ~~ 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. |
| |
| ~~ NOTE: For help with the syntax of this file, see: |
| ~~ http://maven.apache.org/doxia/references/apt-format.html |
| |
| {Task} Reference |
| |
| ~~ TODO: Can the task and type classes be generated using Modello? |
| ~~ If so, the reference documentation can be generated from the model. |
| |
| * <<<{dependencies}>>> |
| |
| This task will check if any of the specified dependencies, and their dependencies are missing or updated, and |
| download them if necessary. The dependencies will be made available as a fileset or path reference. |
| |
| The dependencies task accepts the following attributes: |
| |
| *-------------------------+---------------------------------------------------------------------------+--------------+-------------+ |
| | <<Attribute>> | <<Description>> | <<Required>> | << Since >> | |
| *-------------------------+---------------------------------------------------------------------------+--------------+-------------+ |
| | <<<filesetId>>> | The reference ID to store a fileset under, for the resolved dependencies. | No | | |
| *-------------------------+---------------------------------------------------------------------------+--------------+-------------+ |
| | <<<javadocFilesetId>>> | The reference ID to store a fileset under, for the javadoc attachements of the resolved dependencies. | No | 2.0.9 | |
| *-------------------------+---------------------------------------------------------------------------+--------------+-------------+ |
| | <<<pathId>>> | The reference ID to store a path under, for the resolved dependencies. | No | | |
| *-------------------------+---------------------------------------------------------------------------+--------------+-------------+ |
| | <<<pomRefId>>> | The reference ID from a POM datatype defined earlier in the build file. | Yes, either this or a <<<pom>>> nested element or one or more <<<dependency>>> nested elements | | |
| *-------------------------+---------------------------------------------------------------------------+--------------+-------------+ |
| | <<<settingsFile>>> | The settings file to use. Defaults to <<<$\{user.home\}/.ant/settings.xml>>> or if that doesn't exist <<<$\{user.home\}/.m2/settings.xml>>>. | No | 2.0.6 | |
| *-------------------------+---------------------------------------------------------------------------+--------------+-------------+ |
| | <<<sourcesFilesetId>>> | The reference ID to store a fileset under, for the sources attachements of the resolved dependencies. | No | 2.0.6 | |
| *-------------------------+---------------------------------------------------------------------------+--------------+-------------+ |
| | <<<type>>> | A comma separated list of artifact types to be retrieved. By default all artifact types will be included. | No | | |
| *-------------------------+---------------------------------------------------------------------------+--------------+-------------+ |
| | <<<useScope>>> | Follows the maven scope behaviour. Can be set to <<<compile>>>, <<<runtime>>>, or <<<test>>>. If no value is provided, all scopes will be included. | No | | |
| *-------------------------+---------------------------------------------------------------------------+--------------+-------------+ |
| | <<<scopes>>> | A comma separated list of specific scopes to be retrieved. If no value is provided, all scopes will be included. | No | 2.0.10 | |
| *-------------------------+---------------------------------------------------------------------------+--------------+-------------+ |
| | <<<verbose>>> | If <<<true>>> this displays the results of each dependency resolution and their relationships. Default is <false>. | No | | |
| *-------------------------+---------------------------------------------------------------------------+--------------+-------------+ |
| | <<<versionsId>>> | The property ID to store the versions of the resolved dependencies, for use by a {{{reference.html#VersionMapper} <<<VersionMapper>>>}}. | No | 2.0.7 | |
| *-------------------------+---------------------------------------------------------------------------+--------------+-------------+ |
| | <<<addArtifactFileSetRefs>>> | If set to true, will add a fileset for each resolved dependency. The fileset has an id of <<<groupId:artifactId:type[:classifier]>>>. Default is <false>. | No | 2.0.10 | |
| *-------------------------+---------------------------------------------------------------------------+--------------+-------------+ |
| |
| The task can include the <<<dependency>>> nested type, in addition to the other shared types |
| {{{reference.html#localRepository} <<<localRepository>>>}}, {{{reference.html#pom} <<<pom>>>}} and |
| {{{reference.html#remoteRepository} <<<remoteRepository>>>}}, which will be explained later. |
| |
| You must include either |
| a single <<<pom>>> element |
| or a <<<pomRefId>>> attribute |
| or one or more <<<dependency>>> elements. |
| |
| If you have set a value for <<<versionsId>>>, you can later use {{{reference.html#versionMapper} <<<VersionMapper>>>}}. |
| |
| <(since 2.0.8)> For each dependency resolved, the property <<<groupId:artifactId:type[:classifier]>>> is defined pointing to |
| the corresponding file. |
| |
| ** <<<dependency>>> |
| |
| ~~ TODO: Is system scope supported, in the table below? |
| |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<Attribute>> | <<Description>> | <<Required>> | |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<<groupId>>> | The group ID of the dependency. | Yes | |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<<artifactId>>> | The artifact ID of the dependency. | Yes | |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<<version>>> | The version of the dependency. | Yes | |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<<type>>> | The type of the dependency. The default is <<<jar>>>. | No | |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<<scope>>> | The scope of the usage of the dependency, which affects which of that dependency's own dependencies are also retrieved. This can be <<<compile>>>, <<<runtime>>>, <<<test>>>, <<<provided>>>. | No | |
| *------------------+--------------------------------------------------------+--------------+ |
| |
| The dependency can also nest multiple <<<exclusion>>> elements. |
| |
| *** <<<exclusion>>> |
| |
| An exclusion can be used to prevent the resolution of a particular artifact in the tree of the <<<dependency>>>. |
| |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<Attribute>> | <<Description>> | <<Required>> | |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<<groupId>>> | The group ID of the dependency to exclude. | Yes | |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<<artifactId>>> | The artifact ID of the dependency to exclude. | Yes | |
| *------------------+--------------------------------------------------------+--------------+ |
| |
| * <<<{install}>>>, <<<{deploy}>>> |
| |
| These tasks will install/deploy the given file into the local/remote repository. It is stored using the information in the supplied |
| POM. Multiple artifacts can be attached during install/deploy using <<<attach>>> elements. |
| |
| *---------------------+--------------------------------------------------------------------------+-------------------------------------------------+-------------+ |
| | <<Attribute>> | <<Description>> | <<Required>> | << Since >> | |
| *---------------------+--------------------------------------------------------------------------+-------------------------------------------------+-------------+ |
| | <<<file>>> | The file to install in the repository. | Yes, except if packaging is <<<pom>>> | | |
| *---------------------+--------------------------------------------------------------------------+-------------------------------------------------+-------------+ |
| | <<<pomRefId>>> | The reference ID from a POM datatype defined earlier in the build file. | No, if a <<<pom>>> nested element is provided instead | | |
| *---------------------+--------------------------------------------------------------------------+-------------------------------------------------+-------------+ |
| | <<<settingsFile>>> | The settings file to use. Defaults to <<<$\{user.home\}/.ant/settings.xml>>> or if that doesn't exist <<<$\{user.home\}/.m2/settings.xml>>>. | No | 2.0.6 | |
| *---------------------+--------------------------------------------------------------------------+-------------------------------------------------+-------------+ |
| | <<<uniqueVersion>>> | (<<<deploy>>> only) Whether to assign snapshots a unique version comprised of the timestamp and build number, or to use the same version each time | No, the default is <<<true>>>. | | |
| *---------------------+--------------------------------------------------------------------------+-------------------------------------------------+-------------+ |
| |
| The task must take either a nested {{{reference.html#pom} <<<pom>>>}} element, or a <<<pomRefId>>> attribute. Both release and <<<-SNAPSHOT>>> versions are supported. |
| The task can have an optional {{{reference.html#localRepository} <<<localRepository>>>}} nested element. |
| |
| <<<deploy>>> can have an optional {{{reference.html#remoteRepository} <<<remoteRepository>>>}} nested element. If no |
| <<<remoteRepository>>> nested element is given, the <<<distributionManagement>>> section of the POM is used. |
| |
| ** <<<attach>>> <(since 2.0.6)> |
| |
| Multiple artifacts can be attached to the main artifact, for example: sources, javadocs, ... |
| |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<Attribute>> | <<Description>> | <<Required>> | |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<<file>>> | The file to attach. | Yes | |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<<type>>> | The type of the file. Defaults to <<<jar>>>. | No | |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<<classifier>>> | The classifier of the file. | No | |
| *------------------+--------------------------------------------------------+--------------+ |
| |
| * <<<{install-provider}>>> |
| |
| This task will install a Wagon provider, to add support for more protocols. |
| |
| *------------------+--------------------------------------------------------------------------+--------------+-------------+ |
| | <<Attribute>> | <<Description>> | <<Required>> | << Since >> | |
| *------------------+--------------------------------------------------------------------------+--------------+-------------+ |
| | <<<artifactId>>> | The artifact ID of the provider to install. | Yes | | |
| *------------------+--------------------------------------------------------------------------+--------------+-------------+ |
| | <<<groupId>>> | The group ID of the provider to install. The default is <<<org.apache.maven.wagon>>>. | No | 2.0.7 | |
| *------------------+--------------------------------------------------------------------------+--------------+-------------+ |
| | <<<version>>> | The version of the provider to install. | Yes | | |
| *------------------+--------------------------------------------------------------------------+--------------+-------------+ |
| |
| |
| {Type} Reference |
| |
| * <<<{localRepository}>>> |
| |
| Specifies the location of the local repository of artifacts. |
| ~~ TODO: id/refid |
| |
| *------------------+--------------------------------------------------------+--------------+-------------+ |
| | <<Attribute>> | <<Description>> | <<Required>> | << Since >> | |
| *------------------+--------------------------------------------------------+--------------+-------------+ |
| | <<<layout>>> | The layout of the local repository. The valid options are <<<legacy>>> (Maven 1), or <<<default>>> (Maven 2). Defaults to <<<default>>>. | No | | |
| *------------------+--------------------------------------------------------+--------------+-------------+ |
| | <<<path>>> | The directory of the local repository. | Yes | 2.0.7 | |
| *------------------+--------------------------------------------------------+--------------+-------------+ |
| |
| <<Note>>: until 2.0.6, attribute <<<path>>> was named <<<location>>>, but this changed in 2.0.7 to solve a conflict with Ant 1.7. |
| |
| * <<<{remoteRepository}>>> |
| |
| Specifies the location of the remote repository. |
| ~~ TODO: id/refid |
| |
| *----------------------+--------------------------------------------------------+--------------+ |
| | <<Attribute>> | <<Description>> | <<Required>> | |
| *----------------------+--------------------------------------------------------+--------------+ |
| | <<<id>>> | A unique ID of the repository. | Yes | |
| *----------------------+--------------------------------------------------------+--------------+ |
| | <<<url>>> | The URL of the repository. | Yes | |
| *----------------------+--------------------------------------------------------+--------------+ |
| | <<<layout>>> | The layout of the remote repository. The valid options are <<<legacy>>> (Maven 1), or <<<default>>> (Maven 2). Defaults to <<<default>>>. | No | |
| *----------------------+--------------------------------------------------------+--------------+ |
| |
| The <<<remoteRepository>>> can have the following nested elements: <<<releases>>>, <<<snapshots>>>, <<<authentication>>> and <<<proxy>>>. |
| |
| ** <<<releases>>>, <<<snapshots>>> |
| |
| Policies about downloading different types of artifacts. |
| |
| *----------------------+--------------------------------------------------------+--------------+ |
| | <<Attribute>> | <<Description>> | <<Required>> | |
| *----------------------+--------------------------------------------------------+--------------+ |
| | <<<checksumPolicy>>> | How to treat missing or incorrect checksums for the dependencies that are downloaded. Valid values are <<<warn>>> (<default>) and <<<fail>>>. | No | |
| *----------------------+--------------------------------------------------------+--------------+ |
| | <<<enabled>>> | Whether to download this type of artifact from the repository. Default is <<<true>>>. | No | |
| *----------------------+--------------------------------------------------------+--------------+ |
| | <<<updatePolicy>>> | How often to check for updates on dependencies that are snapshots or include a range of versions. Valid values are <<<never>>>, <<<interval:MINUTES>>>, <<<daily>>> (<default>), <<<always>>>. | No | |
| *----------------------+--------------------------------------------------------+--------------+ |
| |
| ** <<<authentication>>> |
| |
| The authentication element is used for passing a username, password and other credentials to the repository either |
| on upload or download. The content is the same as for <<<server>>> in the {{{http://maven.apache.org/maven-settings/settings.html#class_server} settings reference}}. |
| |
| ** <<<proxy>>> |
| |
| The proxy element is typically used for HTTP repositories. The content is the same as for <<<proxy>>> in the |
| {{{http://maven.apache.org/maven-settings/settings.html#class_proxy} settings reference}}. |
| |
| * <<<{pom}>>> |
| |
| The POM element will load a POM file and make it available as a reference for the other tasks or as properties. |
| |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<Attribute>> | <<Description>> | <<Required>> | |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<<file>>> | The file of the POM to load. | Yes | |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<<id>>> | The reference ID of this POM. | No | |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<<settingsFile>>> | The settings file to use. Defaults to <<<$\{user.home\}/.ant/settings.xml>>> or if that doesn't exist <<<$\{user.home\}/.m2/settings.xml>>>. | No | 2.0.6 | |
| *---------------------+--------------------------------------------------------------------------+-------------------------------------------------+-------------+ |
| |
| ** <<<profile>>> <(since 2.0.10)> |
| |
| Multiple profile elements can be nested within the pom element. By default the profile |
| will be activated. If <<active>> is set to false, then the profile will be explicitly |
| deactivated. |
| |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<Attribute>> | <<Description>> | <<Required>> | |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<<id>>> | The id of the profile to be activated/deactivated. | Yes | |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<<active>>> | Set to <<<true>>> or <<<false>>> to determine whether the profile should be active. Default is <<<true>>>. | No | |
| *------------------+--------------------------------------------------------+--------------+ |
| |
| * <<<{versionMapper}>>> <(since 2.0.7)> |
| |
| This is a {{{http://ant.apache.org/manual/CoreTypes/mapper.html}filename mapper}} |
| that removes version info from the filename when copying dependencies. It can |
| also, optionally, remove the directory info from the filename. |
| |
| The full class name to use in <<<classname>>> attribute of <<<\<mapper\>>>> element is |
| <<<org.apache.maven.artifact.ant.VersionMapper>>>. |
| |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<Attribute>> | <<Description>> | <<Required>> | |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<<from>>> | The versions of the dependencies, as set by <<<versionsId>>> attribute of <<<dependencies>>> task. | Yes | |
| *------------------+--------------------------------------------------------+--------------+ |
| | <<<to>>> | If this is set to <<<flatten>>> the directory info is also removed from the filename. | No | |
| *------------------+--------------------------------------------------------+--------------+ |
| |
| You can see a full working example in the {{{examples/dependencies.html} examples}}. |