blob: a141428a0c6c823bc902e2c866d707283413ee70 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia at Oct 15, 2012 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Plugin Documentation</title>
<style type="text/css" media="all">
@import url("./css/maven-base.css");
@import url("./css/maven-theme.css");
@import url("./css/site.css");
</style>
<link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
<meta name="Date-Revision-yyyymmdd" content="20121015" />
<meta http-equiv="Content-Language" content="en" />
</head>
<body class="composite">
<div id="banner">
<div id="bannerLeft">
Tycho OSGi Packaging Plugin (Incubation)
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="breadcrumbs">
<div class="xleft">
<span id="publishDate">Last Published: 2012-10-15</span>
&nbsp;| <span id="projectVersion">Version: 0.16.0</span>
</div>
<div class="xright"> <a href="http://wiki.eclipse.org/Development_Resources/HOWTO/Incubation_Phase#.281.29_What_Is_Incubation.3F" class="externalLink" title="This content is PRELIMINARY API and still subject to change">This content is PRELIMINARY API and still subject to change</a>
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="leftColumn">
<div id="navcolumn">
<h5>Tycho</h5>
<ul>
<li class="none">
<a href="../index.html" title="Introduction">Introduction</a>
</li>
<li class="none">
<a href="../tycho-compiler-plugin/plugin-info.html" title="Compiler Plugin">Compiler Plugin</a>
</li>
<li class="none">
<a href="../tycho-packaging-plugin/plugin-info.html" title="Packaging Plugin">Packaging Plugin</a>
</li>
<li class="none">
<a href="../tycho-source-plugin/plugin-info.html" title="Source Plugin">Source Plugin</a>
</li>
<li class="none">
<a href="../tycho-surefire/tycho-surefire-plugin/plugin-info.html" title="Surefire Plugin">Surefire Plugin</a>
</li>
<li class="none">
<a href="../tycho-release/tycho-versions-plugin/plugin-info.html" title="Versions Plugin">Versions Plugin</a>
</li>
<li class="none">
<a href="../tycho-p2/tycho-p2-director-plugin/plugin-info.html" title="P2 Director Plugin">P2 Director Plugin</a>
</li>
<li class="none">
<a href="../tycho-p2/tycho-p2-repository-plugin/plugin-info.html" title="P2 Repository Plugin">P2 Repository Plugin</a>
</li>
</ul>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
<img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
</a>
</div>
</div>
<div id="bodyColumn">
<div id="contentBox">
<a name="Plugin_Documentation"></a><div class="section"><h2>Plugin Documentation<a name="Plugin_Documentation"></a></h2><p>Goals available for this plugin:</p><table border="0" class="bodyTable"><tr class="a"><th>Goal</th><th>Description</th></tr><tr class="b"><td><a href="build-qualifier-mojo.html">tycho-packaging:build-qualifier</a></td><td>This mojo generates build qualifier according to the rules outlined
in
http://help.eclipse.org/ganymede/topic/org.eclipse.pde.doc.user/tasks/pde_version_qualifiers.htm
<ol>
<li>explicit -DforceContextQualifier command line parameter</li>
<li>forceContextQualifier from
${project.baseDir}/build.properties</li>
<li>a time stamp in the form YYYYMMDDHHMM (ie 200605121600)</li>
</ol>
<p>The generated qualifier is assigned to
<code>buildQualifier</code> project property. Unqualified project
version is assigned to <code>unqualifiedVersion</code> project
property. Unqualified version is calculated based on
<code>${project.version}</code> and can be used for any Tycho
project (eclipse-update-site, eclipse-application, etc) and regular
maven project. Different projects can use different formats to
expand the timestamp, however (highly not recommended but
possible).</p>
<p>Starting with version 0.16, it is now possible to use custom
build timestamp generation logic. The primary usecase is to
generate build version qualifier based on the timestamp of the last
project commit. Here is example pom.xml snippet that enables custom
timestamp generation logic</p>
<pre>
...
&lt;plugin&gt;
&lt;groupId&gt;org.eclipse.tycho&lt;/groupId&gt;
&lt;artifactId&gt;tycho-packaging-plugin&lt;/artifactId&gt;
&lt;version&gt;${tycho-version}&lt;/version&gt;
&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;timestamp-provider-groupid&lt;/groupId&gt;
&lt;artifactId&gt;timestamp-provider-artifactid&lt;/artifactId&gt;
&lt;version&gt;timestamp-provider-version&lt;/version&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
&lt;configuration&gt;
&lt;timestampProvider&gt;custom&lt;/timestampProvider&gt;
&lt;/configuration&gt;
&lt;/plugin&gt;
...
</pre></td></tr><tr class="a"><td><a href="build-qualifier-aggregator-mojo.html">tycho-packaging:build-qualifier-aggregator</a></td><td>This mojo calculates build timestamp as the latest timestamp of the
project itself and timestamps of bundles and features directly
included in the project. This is meant to work with custom
timestamp providers and generate build qualifier based on build
contents, i.e. the source code, and not the time the build was
started; rebuilding the same source code will result in the same
version qualifier.
<p>Timestamp of included bundles and features is determined by
parsing their respective version qualifiers. Qualifiers that cannot
be parsed are silently ignored, which can result in old version
qualifier used even when aggregator project contents actually
changed. In this case aggregator project timestamp will have to be
increased manually, using artificial SCM commit for example.</p>
<p>Qualifier aggregation is enabled only for projects with custom
timestamp provider, i.e. &lt;timestampProvider&gt; is set in
pom.xlm to a value other than "default". The default build
timestamp provider uses build start time as build timestamp, which
should be newer or equal than timestamp of any included
bundle/feature project, which makes qualifier aggregation
redundant.</p></td></tr><tr class="b"><td><a href="package-feature-mojo.html">tycho-packaging:package-feature</a></td><td>No description.</td></tr><tr class="a"><td><a href="package-plugin-mojo.html">tycho-packaging:package-plugin</a></td><td>Creates a jar-based plugin and attaches it as an artifact</td></tr><tr class="b"><td><a href="package-target-definition-mojo.html">tycho-packaging:package-target-definition</a></td><td>Registers the target definition file &lt;artifactId&gt;.target
expected in the basedir of a project as maven artifact.</td></tr><tr class="a"><td><a href="product-export-mojo.html">tycho-packaging:product-export</a></td><td>No description.</td></tr><tr class="b"><td><a href="update-site-mojo.html">tycho-packaging:update-site</a></td><td>No description.</td></tr><tr class="a"><td><a href="update-site-packaging-mojo.html">tycho-packaging:update-site-packaging</a></td><td>No description.</td></tr><tr class="b"><td><a href="validate-id-mojo.html">tycho-packaging:validate-id</a></td><td>Validates that project Maven and OSGi ids match.</td></tr><tr class="a"><td><a href="validate-version-mojo.html">tycho-packaging:validate-version</a></td><td>Validates project Maven and OSGi versions. For SNAPSHOT versions,
OSGi version qualifier must be ".qualifier" and unqualified Maven
and OSGi versions must be equal. For RELEASE versions, OSGi and
Maven versions must be equal.</td></tr></table><a name="System_Requirements"></a><div class="section"><h3>System Requirements<a name="System_Requirements"></a></h3><p>The following specifies the minimum requirements to run this Maven plugin:</p><table border="0" class="bodyTable"><tr class="b"><td>Maven</td><td>3.0</td></tr><tr class="a"><td>JDK</td><td>1.5</td></tr><tr class="b"><td>Memory</td><td>No minimum requirement.</td></tr><tr class="a"><td>Disk Space</td><td>No minimum requirement.</td></tr></table></div><a name="Usage"></a><div class="section"><h3>Usage<a name="Usage"></a></h3><p>You should specify the version in your project's plugin configuration:</p><div class="source"><pre>&lt;project&gt;
...
&lt;build&gt;
&lt;!-- To define the plugin version in your parent POM --&gt;
&lt;pluginManagement&gt;
&lt;plugins&gt;
&lt;plugin&gt;
&lt;groupId&gt;org.eclipse.tycho&lt;/groupId&gt;
&lt;artifactId&gt;tycho-packaging-plugin&lt;/artifactId&gt;
&lt;version&gt;0.16.0&lt;/version&gt;
&lt;/plugin&gt;
...
&lt;/plugins&gt;
&lt;/pluginManagement&gt;
&lt;!-- To use the plugin goals in your POM or parent POM --&gt;
&lt;plugins&gt;
&lt;plugin&gt;
&lt;groupId&gt;org.eclipse.tycho&lt;/groupId&gt;
&lt;artifactId&gt;tycho-packaging-plugin&lt;/artifactId&gt;
&lt;version&gt;0.16.0&lt;/version&gt;
&lt;/plugin&gt;
...
&lt;/plugins&gt;
&lt;/build&gt;
...
&lt;/project&gt;
</pre></div><p>For more information, see <a class="externalLink" href="http://maven.apache.org/guides/mini/guide-configuring-plugins.html">&quot;Guide to Configuring Plug-ins&quot;</a></p></div></div>
</div>
</div>
<div class="clear">
<hr/>
</div>
<div id="footer">
<div class="xright">
Copyright &#169; 2008-2012
<a href="http://www.eclipse.org/">Eclipse Foundation</a>.
All Rights Reserved.
</div>
<div class="clear">
<hr/>
</div>
</div>
</body>
</html>