blob: cce12c2ff97202e6db0db7a2fc076b0e8af0d8ba [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">
Publishes the current module's <a href="../ivyfile/publications.html">artifacts</a> and the <a href="../ivyfile.html#resolved">resolved descriptor</a> (delivered ivy file).
This task is meant to publish the current module descriptor together with its declared publication artifacts to a repository.
All the artifacts must have been created <em>before</em> calling this task. It does not create the artifacts themselves, but expects to find them at the location indicated by the artifacts pattern.
The target repository is given through the name of a resolver declared in current ivy settings. See [[settings]] for details about resolver supporting artifact publishing.
It also publishes the delivered ivy file (except if you don't want), and even deliver it, if it has not been done with a previous deliver call or if forcedeliver is set to true. That's why this task takes some parameters useful only for delivery. See the illustration below:
<p><img alt="publish flowchart" src="../images/ivy-publish-fc.png" width="360" height="473"/></p>
<span class="since">since 1.4.1</span>
The source artifact pattern can be specified either as an attribute on the task (artifactspattern) or using a list of nested artifacts element (see examples below).
<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>the name of the organisation of the module to publish</td><td>No. Defaults to ${ivy.organisation} or the last resolved module organisation.</td></tr>
<tr><td>module</td><td>the name of the module to publish</td><td>No. Defaults to ${ivy.module} or the last resolved module name.</td></tr>
<tr><td>revision</td><td>the revision of the module to publish and also the published revision unless pubrevision is set</td><td>No. Defaults to ${ivy.revision} or the last resolve module revision.</td></tr>
<tr><td>artifactspattern</td><td>the pattern to use to find artifacts to publish</td>
<td>No. Defaults to ${ivy.publish.src.artifacts.pattern}</td></tr>
<tr><td>resolver</td><td>the name of the resolver to use for publication</td>
<td>Yes</td></tr>
<tr><td>pubrevision</td><td>the revision to use for the publication</td>
<td>No. Defaults to the ${ivy.deliver.revision}</td></tr>
<tr><td>pubbranch</td><td>the branch to use for the publication</td>
<td>No. Defaults to the ${ivy.deliver.branch}</td></tr>
<tr><td>forcedeliver</td><td>true to force the implicit call to deliver, false to do it only if the ivy file to publish doesn't exist yet <span class="since">(since 1.4)</span></td>
<td>No. Defaults to false</td></tr>
<tr><td>update</td><td>true to update ivy file metadata (revision, branch, publication date and status) before publishing, false otherwise. This is usually not necessary when using deliver before publish.</td>
<td>No. Defaults to false</td></tr>
<tr><td>merge</td><td>if this descriptor <a href="../ivyfile/extends.html">extends</a> a parent, merge the inherited information directly into this descriptor on publish. The <i>extends</i> element itself will be commented out in the published descriptor. <span class="since">(since 2.2)</span></td>
<td>No. Defaults to true</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 [[settings settings file]])</td></tr>
<tr><td>replacedynamicrev</td><td>true to replace dynamic revisions by static ones in the delivered file, false to avoid this replacement <span class="since">(since 1.3)</span></td>
<td>No. Defaults to true</td></tr>
<tr><td>publishivy</td><td>True to publish delivered ivy file, false otherwise</td>
<td>No. Defaults to true</td></tr>
<tr><td>conf</td><td>A comma separated list of configurations to publish <span class="since">(since 1.4.1)</span>. Accepts wildcards <span class="since">(since 2.2)</span>.</td>
<td>No. Defaults to all configurations</td></tr>
<tr><td>overwrite</td><td>True to overwrite files in repository if the revision already exist, false to let it as is</td>
<td>No. Defaults to false</td></tr>
<tr><td>warnonmissing</td><td>True to warn when artifacts to be published are missing</td>
<td>No. Defaults to true</td></tr>
<tr><td>haltonmissing</td><td>True to halt build when artifacts to be published are missing</td>
<td>No. Defaults to true</td></tr>
<tr><td>srcivypattern</td><td>the pattern to use to find ivy file to publish, and even deliver if necessary <span class="since">(since 1.2)</span></td>
<td>No. Defaults to the value of artifactspattern</td></tr>
<tr><td>pubdate</td><td>the publication date to use for the delivery, if necessary. This date should be either 'now', or a date given with the following pattern: yyyyMMddHHmmss</td>
<td>No. Defaults to 'now'</td></tr>
<tr><td>status</td><td>the status to use for the delivery, if necessary</td>
<td>No. Defaults to ${ivy.status}</td></tr>
<tr><td>delivertarget</td><td>the target to call for recursive delivery</td>
<td>No. No recursive delivery is done by default</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>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>artifact</td>
<td>Describe additional artifacts to publish<br/>These elements can have any attribute: standard artifact attributes and (since 2.2) extra attributes are supported.</td>
<td>0..n</td></tr>
<tr><td>artifacts</td>
<td>Specify the pattern used to find the artifact.<br/>These elements have a <i>pattern</i> attribute containing the pattern used to find the artifact.</td>
<td>0..n</td></tr>
</tbody>
</table>
<h1>Examples</h1>
<code type="xml">
<ivy:publish resolver="local" pubrevision="1.0">
<artifacts pattern="build/artifacts/jars/[artifact].[ext]" />
<artifacts pattern="build/artifacts/zips/[artifact].[ext]" />
</ivy:publish>
</code>
Publishes the last resolved module in the local resolver with revision 1.0, looking for artifacts in directories <i>build/artifacts/jars</i> and <i>build/artifacts/zips</i>.
</textarea>
<script type="text/javascript">xooki.postProcess();</script>
</body>
</html>