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

Sets a variable (by name and value), or set of variables (from file or URL) in Ivy.

Variables are case sensitive.

Contrary to Ant properties, Ivy variables are mutable. But a problem with this is that you do not control when
variables are substituted, and usually it is done as soon as possible. So changing the value of a variable will
have no effect if it has already been substituted. Consequently, *using this task is NOT recommended*.

See link:../reference{outfilesuffix}[reference] page for details about Ivy variables.

== Attributes

[options="header",cols="15%,50%,35%"]
|=======
|Attribute|Description|Required
|name|the name of the variable to set|No
|value|the value of the variable to set|Yes when using the name attribute
|file|the filename of the property file to load as Ivy variables
.2+.^|One of these, when *not* using the name attribute
|url|the URL from which to read Ivy variables
|prefix|Prefix to apply to variables. A dot (`.`) is appended to the prefix if not specified.|No
|settingsRef|A reference to Ivy settings that must be used by this task (*__since 2.0__*)|No, defaults to `ivy.instance`.
|=======
