| <!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> |