blob: 14b284be4988e738e7b08a87131024e83f0ba2ca [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!--
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.
-->
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<script type="text/javascript">var xookiConfig = {level: 1};</script>
<script type="text/javascript" src="../xooki/xooki.js"></script>
</head>
<body>
<textarea id="xooki-source">
<b>Tag:</b> exclude <b>Parent:</b> <a href="../ivyfile/dependency.html">dependency</a>
This feature gives you more control on a dependency for which you do not control its ivy file.
It enables to restrict the artifacts required, by excluding artifacts being published by the dependency or any of its transitive dependencies,
even if configuration does not a good separation of published artifacts
The same principle concerning configuration as for include applies to this exclude feature (see the [[ivyfile/dependency-include include]] feature).
Note that exclusion is always done AFTER inclusion has been done.
<span class="since">since 1.3</span> This exclude feature can also be used not only to exclude artifacts but also to exclude whole modules. Indeed when you exclude artifacts, it doesn't avoid ivy to search for the module itself, and to resolve the dependencies of the module. But you can also exclude the whole module, which means that the module will not be downloaded at all, and so its own dependencies will not be resolved. For sure, this is usually done to exclude not a direct dependency but an indirect one. To exclude a whole module, you just have to not specify any artifact name, type and ext in your exclude rule. For instance:
<code type="xml">
<dependency name="A" rev="1.0">
<exclude module="B"/>
</dependency>
</code>
<span class="since">since 2.0</span> A [[ivyfile/exclude module wide exclude]] can also be used to exclude dependencies for the whole module (and not only in the context of one dependency as it is the case here).
<h1>Attributes</h1>
<table class="ivy-attributes">
<thead>
<tr><th class="ivy-att">Attribute</th><th class="ivy-att-desc">Description</th><th class="ivy-att-req">Required</th></tr>
</thead>
<tbody>
<tr><td>org</td><td>the organisation of the dependency module or artifact to exclude, or a regexp matching this organisation <span class="since">since 1.3</span></td>
<td>No, defaults to *</td></tr>
<tr><td>module</td><td>the name of the dependency module or the artifact to exclude, or a regexp matching this module name <span class="since">since 1.3</span></td>
<td>No, defaults to *</td></tr>
<tr><td>name</td><td>the name of an artifact of the dependency module to add to the exclude list, or an expression matching this name (see matcher attribute below)</td>
<td>No, defaults to *</td></tr>
<tr><td>type</td><td>the type of the artifact of the dependency module to add to the exclude list, or a regexp matching this name</td>
<td>No, defaults to *</td></tr>
<tr><td>ext</td><td>the extension of the artifact of the dependency module to add to the exclude list, or an expression matching this name (see matcher attribute below)</td>
<td>No, defaults to type</td></tr>
<tr><td>matcher</td><td>the <a href="../concept.html#matcher">matcher</a> to use to match the modules to excludes <span class="since">since 1.3</span></td>
<td>No, defaults to exactOrRegexp in pre 1.3 ivy files, and exact in 1.3 and superior</td></tr>
<tr><td>conf</td><td>comma separated list of the master configurations in which this artifact should be excluded.
'*' wildcard can be used to designate all configurations of this module</td>
<td>No, defaults to '*', unless nested conf are specified</td></tr>
</tbody>
</table>
<h1>Child elements</h1>
<table class="ivy-children">
<thead>
<tr><th class="ivy-chld">Element</th><th class="ivy-chld-desc">Description</th><th class="ivy-chld-card">Cardinality</th></tr>
</thead>
<tbody>
<tr><td><a href="../ivyfile/artifact-exclude-conf.html">conf</a></td><td>configuration in which the artifact should be excluded</td>
<td>0..n</td></tr>
</tbody>
</table>
</textarea>
<script type="text/javascript">xooki.postProcess();</script>
</body>
</html>