blob: 2e0d911973c68205582066c1ec7d92c4ee51e008 [file] [log] [blame]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.9.1 from org.apache.maven.plugins:maven-plugin-plugin:3.6.0:report at 2020-01-13
| Rendered using Apache Maven Fluido Skin 1.8
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="generator" content="Apache Maven Doxia Site Renderer 1.9.1" />
<title>Tycho OSGi Packaging Plugin &#x2013; Plugin Documentation</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.8.min.css" />
<link rel="stylesheet" href="./css/site.css" />
<link rel="stylesheet" href="./css/print.css" media="print" />
<script src="./js/apache-maven-fluido-1.8.min.js"></script>
</head>
<body class="topBarDisabled">
<div class="container-fluid">
<header>
<div id="banner">
<div class="pull-left"><div id="bannerLeft"><h2>Tycho OSGi Packaging Plugin</h2>
</div>
</div>
<div class="pull-right"></div>
<div class="clear"><hr/></div>
</div>
<div id="breadcrumbs">
<ul class="breadcrumb">
<li id="publishDate">Last Published: 2020-01-13<span class="divider">|</span>
</li>
<li id="projectVersion">Version: 1.6.0</li>
</ul>
</div>
</header>
<div class="row-fluid">
<header id="leftColumn" class="span2">
<nav class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header">Tycho</li>
<li><a href="../index.html" title="Introduction"><span class="none"></span>Introduction</a></li>
<li><a href="../tycho-compiler-plugin/plugin-info.html" title="Compiler Plugin"><span class="none"></span>Compiler Plugin</a></li>
<li><a href="../tycho-packaging-plugin/plugin-info.html" title="Packaging Plugin"><span class="none"></span>Packaging Plugin</a></li>
<li><a href="../BuildProperties.html" title="Build Properties"><span class="none"></span>Build Properties</a></li>
<li><a href="../tycho-surefire-plugin/plugin-info.html" title="Surefire Plugin"><span class="none"></span>Surefire Plugin</a></li>
<li><a href="../tycho-p2/tycho-p2-publisher-plugin/plugin-info.html" title="p2 Publisher Plugin"><span class="none"></span>p2 Publisher Plugin</a></li>
<li><a href="../tycho-p2/tycho-p2-repository-plugin/plugin-info.html" title="p2 Repository Plugin"><span class="none"></span>p2 Repository Plugin</a></li>
<li><a href="../tycho-p2/tycho-p2-director-plugin/plugin-info.html" title="p2 Director Plugin"><span class="none"></span>p2 Director Plugin</a></li>
<li><a href="../tycho-source-plugin/plugin-info.html" title="Source Plugin"><span class="none"></span>Source Plugin</a></li>
<li><a href="../tycho-release/tycho-versions-plugin/plugin-info.html" title="Versions Plugin"><span class="none"></span>Versions Plugin</a></li>
<li><a href="../tycho-pomgenerator-plugin/plugin-info.html" title="POM Generator Plugin"><span class="none"></span>POM Generator Plugin</a></li>
<li><a href="../TychoProperties.html" title="Tycho Properties"><span class="none"></span>Tycho Properties</a></li>
</ul>
</nav>
<div class="well sidebar-nav">
<hr />
<div id="poweredBy">
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
</div>
</div>
</header>
<main id="bodyColumn" class="span10" >
<section>
<h2><a name="Plugin_Documentation"></a>Plugin Documentation</h2><a name="Plugin_Documentation"></a>
<p>Goals available for this plugin:</p>
<table border="0" class="table table-striped">
<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><p>This mojo generates the build qualifier according to the <a
href="http://help.eclipse.org/kepler/topic/org.eclipse.pde.doc.user/tasks/pde_version_qualifiers.htm">rules
described in the PDE documentation</a>:</p>
<ol>
<li>Explicit -DforceContextQualifier command line parameter</li>
<li>forceContextQualifier from
${project.baseDir}/build.properties</li>
<li>A time stamp in the form YYYYMMDDHHMM (e.g. 200605121600)</li>
</ol>
<br />
<br />
<p>The generated qualifier is assigned to
<code>buildQualifier</code> project property. The unqualified
project version is assigned to <code>unqualifiedVersion</code>
project property. The unqualified version is calculated based on
<code>${project.version}</code> and can be used for any Tycho
project and regular Maven project. Different projects can use
different formats to expand the timestamp (not recommended). The
concatenation of <code>${unqualifiedVersion}</code> and
<code>${buildQualifier}</code>, if not empty, is assigned to the
project property <code>qualifiedVersion</code>.</p>
<p>The timestamp generation logic is extensible. The primary use
case 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><p>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>
<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.xml 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-iu-mojo.html">tycho-packaging:package-iu</a></td>
<td>Creates the zip for the IU and attaches it as an artifact</td></tr>
<tr class="b">
<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="a">
<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="b">
<td><a href="product-export-mojo.html">tycho-packaging:product-export</a></td>
<td>No description.</td></tr>
<tr class="a">
<td><a href="update-site-mojo.html">tycho-packaging:update-site</a></td>
<td>No description.</td></tr>
<tr class="b">
<td><a href="update-site-packaging-mojo.html">tycho-packaging:update-site-packaging</a></td>
<td>No description.</td></tr>
<tr class="a">
<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="b">
<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><section>
<h3><a name="System_Requirements"></a>System Requirements</h3><a name="System_Requirements"></a>
<p>The following specifies the minimum requirements to run this Maven plugin:</p>
<table border="0" class="table table-striped">
<tr class="a">
<td>Maven</td>
<td>3.0</td></tr>
<tr class="b">
<td>JDK</td>
<td>1.8</td></tr>
<tr class="a">
<td>Memory</td>
<td>No minimum requirement.</td></tr>
<tr class="b">
<td>Disk Space</td>
<td>No minimum requirement.</td></tr></table></section><section>
<h3><a name="Usage"></a>Usage</h3><a name="Usage"></a>
<p>You should specify the version in your project's plugin configuration:</p>
<div class="source"><pre class="prettyprint">&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;1.6.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;1.6.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></section></section>
</main>
</div>
</div>
<hr/>
<footer>
<div class="container-fluid">
<div class="row-fluid">
<p>Copyright &#169; 2008&#x2013;2020<a href="http://www.eclipse.org/">Eclipse Foundation</a>.
.</p>
</div>
</div>
</footer>
</body>
</html>