mirror of https://github.com/apache/ant-ivy
132 lines
7.9 KiB
HTML
132 lines
7.9 KiB
HTML
<!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">
|
|
<span class="since">since 2.0</span>
|
|
The makepom task allows to convert an ivy file to a pom file.
|
|
|
|
An example of use is to publish an Ivy managed module to a maven 2 repository.
|
|
|
|
<em>Note that all Ivy features are not supported by maven poms, so the converted pom may not resolve to the exact same dependencies as the original ivy file.</em>
|
|
|
|
<span class="since">since 2.2</span>
|
|
It is possible to specify a template file defining the structure of the generated POM. The following processing is done on this template:
|
|
<ul>
|
|
<li>properties like <i>${property.name}</i> are replaced if they are defined in Ant or by the ivy:makepom task (see below for the standard properties)</li>
|
|
<li>lines containg the string <i>SKIP_LINE</i> are skipped.</li>
|
|
<li>the defined dependencies will be added to the first <dependencies> element encountered in the pom template. If the template doesn't contain a <dependencies> element, it is generated a the end of the pom.
|
|
</ul>
|
|
|
|
The ivy:makepom task defines following properties that can be used in the template. <ul>
|
|
<li><b>ivy.pom.groupId</b>: defaults to the organisation as defined in the ivy.xml file</li>
|
|
<li><b>ivy.pom.artifactId</b>: defaults to the value of the 'atifactName' attribute of this task, or the name of the module as defined in the ivy.xml file</li>
|
|
<li><b>ivy.pom.packaging</b>: defaults to the value of the 'artifactPackaging' attribute of this task, or the extenstion of the artifact</li>
|
|
<li><b>ivy.pom.version</b>: defaults to the revision as defined in the ivy.xml file</li>
|
|
<li><b>ivy.pom.name</b>: defaults to 'SKIP_LINE'</li>
|
|
<li><b>ivy.pom.description</b>: defaults to the value of the 'description' attribute of this task, or 'SKIP_LINE' when not specified</li>
|
|
<li><b>ivy.pom.url</b>: defaults to the homepage as defined in the ivy.xml file</li>
|
|
<li><b>ivy.pom.license</b>: the content of the specified headerFile, or 'SKIP_LINE' if not specified</li>
|
|
<li><b>ivy.pom.header</b>: some Ivy information, or 'SKIP_LINE' if the 'printIvyInfo' attribute is set to false.</li>
|
|
</ul>
|
|
Note that each property can be given a value manually in the Ant build file. In that case, Ivy will use the value specified in the build file instead of the default value.
|
|
|
|
The default template that ships with Ivy looks like this:
|
|
<code type="xml">
|
|
${ivy.pom.license}
|
|
${ivy.pom.header}
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
|
|
<modelVersion>4.0.0</modelVersion>
|
|
<groupId>${ivy.pom.groupId}</groupId>
|
|
<artifactId>${ivy.pom.artifactId}</artifactId>
|
|
<packaging>${ivy.pom.packaging}</packaging>
|
|
<version>${ivy.pom.version}</version>
|
|
<name>${ivy.pom.name}</name>
|
|
<description>${ivy.pom.description}</description>
|
|
<url>${ivy.pom.url}</url>
|
|
</project>
|
|
</code>
|
|
|
|
<h1>Attributes</h1>
|
|
<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>ivyfile</td><td>the source ivy file to convert</td>
|
|
<td>Yes</td></tr>
|
|
<tr><td>pomfile</td><td>the destination pom file to write</td>
|
|
<td>Yes</td></tr>
|
|
<tr><td>templatefile</td><td>the template file to use when generating the pom <span class="since">(since 2.2)</span></td>
|
|
<td>No, defaults to the internal template file.</td></tr>
|
|
<tr><td>artifactName</td><td>The name of the artifact which is represented by the generated pom file. <span class="since">(since 2.2)</span></td>
|
|
<td>No, defaults to the module name in the source ivy file.</td></tr>
|
|
<tr><td>artifactPackaging</td><td>The packaging of the artifact which is represented by the generated pom file. <span class="since">(since 2.2)</span></td>
|
|
<td>No, the artifact type is taken by default. Defaults to 'pom' if no such artifact is defined.</td></tr>
|
|
<tr><td>conf</td><td>a comma separated list of the configurations to include in the generated pom. Wildcards are supported here. <span class="since">(since 2.2)</span></td>
|
|
<td>No, defaults to all configurations.</td></tr>
|
|
<tr><td>settingsRef</td><td>A reference to the ivy settings that must be used by this task</td>
|
|
<td>No, 'ivy.instance' is taken by default.</td></tr>
|
|
<tr><td>printIvyInfo</td><td>Add some information about Ivy to the generated POM. <span class="since">(since 2.2)</span></td>
|
|
<td>No, defaults to 'true'.</td></tr>
|
|
<tr><td>headerFile</td><td>the header of the generated pom file</td>
|
|
<td>No</td></tr>
|
|
<tr><td>description</td><td>The description that will be added to the generated pom. <span class="since">(since 2.2)</span></td>
|
|
<td>No, defaults to no description. Since 2.5, defaults to the description in the source ivy file.</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>mapping</td>
|
|
<td>describes the mapping from an Ivy module configuration to a Maven POM scope.<br/>These elements takes two attributes: <ul><li>conf</li> the configuration to map<li>scope</li>the scope to which it should be mapped</ul></td>
|
|
<td>0..n</td></tr>
|
|
<tr><td>dependency</td>
|
|
<td>describes extra dependencies that should be added to the generated Maven POM file.<br/>These elements takes the following attributes: <ul><li>group</li> the groupId. Default <i>organisation</i> as defined in <i>info</i><li>artifact</li> the name of the artifact<li>version</li> the version. Default <i>revision</i> as defined in <i>info</i><li>type <span class="since">(since 2.3)</span></li> the type<li>classifier <span class="since">(since 2.3)</span></li> the classifier<li>scope</li> the scope<li>optional</li> is the artifact optional. Default <i>false</i></ul></td>
|
|
<td>0..n</td></tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<h1>Examples</h1>
|
|
<code type="xml">
|
|
<ivy:makepom ivyfile="${basedir}/path/to/ivy.xml" pomfile="${basedir}/path/to/module.pom" conf="default,runtime">
|
|
<mapping conf="default" scope="compile"/>
|
|
<mapping conf="runtime" scope="runtime"/>
|
|
<dependency group="com.acme" artifact="acme-logging" version="1.0" optional="true"/>
|
|
</ivy:makepom>
|
|
</code>
|
|
Converts ${basedir}/path/to/ivy.xml to a pom and writes the result to ${basedir}/path/to/module.pom. The configuration 'default' in the parsed ivy file will be mapped to the scope 'compile', the configuration 'runtime' will be mapped to 'runtime', and other configurations will be excluded.
|
|
|
|
The <i>com.acme.acme-logging</i> artifact with version 1.0 will be added as an optional dependency.
|
|
</textarea>
|
|
<script type="text/javascript">xooki.postProcess();</script>
|
|
</body>
|
|
</html>
|