blob: 60d76efc00236f6458e5457773346d17967b1ae2 [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">
Generates reports about dependencies among several modules in the repository (repreport stands for repository report).<span class="since">since 1.4</span>
This task is similar to the [[ant:report]] task, except that instead of working on a single module you just resolved, it works with a set of modules in your repository.
Note that the set of modules for which you generate the report is determined by setting organisation module and revision and using a matcher, but also by the dependencies of these modules. No dependency is excluded.
Usually the most useful report is a graph, you can generate either a graphml file that you can then easily <a href="../yed.html">layout using yEd</a>, or a dot file which is the format recognized by graphviz, which is a free tool which does automatic graph layout, and can thus be used to generate automatically a GIF or PNG of the dependencies between all your modules.
<strong>Limitation</strong>: this task requires to be able to browse the repository, and is thus limited to resolvers supporting repository listing. In particular, it means it doesn't work to report all organizations in a repository using m2compatible mode.
Moreover, to be able to list organizations, this task requires an [organisation] token in the resolver(s) used.
<table class="ant">
<thead>
<tr><th class="ant-att">Attribute</th><th class="ant-desc">Description</th><th class="ant-req">Required</th></tr>
</thead>
<tbody>
<tr><td>organisation</td><td>A pattern matching the organisation of the modules for which the report should be generated</td>
<td>No, defaults to '*'</td></tr>
<tr><td>module</td><td>A pattern matching the name of the modules for which the report should be generated</td>
<td>No, defaults to '*'</td></tr>
<tr><td>branch</td><td>The name of the branch of the modules for which the report should be generated</td>
<td>No, defaults to no branch specified</td></tr>
<tr><td>revision</td><td>The revision of the modules for which the report should be generated. Only one revision per module will be used, so most of the time keeping the default (latest.integration) is the best thing to do, because it's not very easy to specify only one revision for several modules.</td>
<td>No, defaults to 'latest.integration'</td></tr>
<tr><td>todir</td><td>the directory to which reports should be generated</td>
<td>No, defaults to execution directory</td></tr>
<tr><td>outputname</td><td>the name to use for the generate file (without extension)</td>
<td>No, defaults to ivy-repository-report</td></tr>
<tr><td>xml</td><td>true to generate a xml report, false otherwise</td>
<td>No, defaults to true</td></tr>
<tr><td>xsl</td><td>true to generate a report using xslt, false otherwise</td>
<td>No, defaults to false</td></tr>
<tr><td>xslfile</td><td>indicates which xsl file should be used to generate the report</td>
<td>Yes if you want to use xsl transformation</td></tr>
<tr><td>xslext</td><td>indicates the extension to use when generating report using xsl</td>
<td>No defaults to 'html'</td></tr>
<tr><td>graph</td><td>true to generate graphml file, false otherwise</td>
<td>No, defaults to false</td></tr>
<tr><td>dot</td><td>true to generate graphviz dot format file, false otherwise</td>
<td>No, defaults to false</td></tr>
<tr><td>matcher</td><td>the name of the matcher to use for matching modules names and organisations in your repository</td>
<td>No. Defaults to exactOrRegexp</td></tr>
<tr><td>validate</td><td>true to force ivy files validation against ivy.xsd, false to force no validation</td>
<td>No. Defaults to default ivy value (as configured in configuration file)</td></tr>
<tr><td>settingsRef</td><td>A reference to the ivy settings that must be used by this task <span class="since">(since 2.0)</span></td><td>No, 'ivy.instance' is taken by default.</td></tr></tbody>
</table>
<h1>Examples</h1>
To generate a xml report for all the latest versions of all the modules in your repository:
<code type="xml">
<ivy:repreport />
</code>
<hr/>
To generate a graphml report for all the latest versions of all the modules in your repository:
<code type="xml">
<ivy:repreport xml="false" graph="true" />
</code>
<hr/>
To generate a xml report for all the latest versions of the modules from the organisation foo in your repository:
<code type="xml">
<ivy:repreport organisation="foo" />
</code>
<hr/>
To generate a xml report for all the versions on the 1.x stream of the modules named bar* from the organisation foo in your repository:
<code type="xml">
<ivy:repreport organisation="foo" module="bar*" revision="1.+" matcher="glob" />
</code>
<hr/>
To generate an XML report using a custom stylesheet:
<code type="xml">
<ivy:repreport xsl="true" xslfile="my-custom-stylesheet.xsl" xslext="xml" />
</code>
<hr/>
To generate an XML report using a custom stylesheet which needs some parameters:
<code type="xml">
<ivy:repreport xsl="true" xslfile="my-custom-stylesheet.xsl" xslext="xml">
<param name="param1" expression="value1" />
<param name="param2" expression="value2" />
</report>
</code>
</textarea>
<script type="text/javascript">xooki.postProcess();</script>
</body>
</html>