blob: 36d97df976cc15a0ea97c31d978293bf38cae381 [file] [log] [blame]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia at 2017-02-13
| Rendered using Apache Maven Fluido Skin 1.3.0
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="Date-Revision-yyyymmdd" content="20170213" />
<meta http-equiv="Content-Language" content="en" />
<title>Tycho OSGi Packaging Plugin - Plugin Documentation</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
<link rel="stylesheet" href="./css/site.css" />
<link rel="stylesheet" href="./css/print.css" media="print" />
<script type="text/javascript" src="./js/apache-maven-fluido-1.3.0.min.js"></script>
</head>
<body class="topBarDisabled">
<div class="container-fluid">
<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: 2017-02-13</li>
<li class="divider">|</li> <li id="projectVersion">Version: 1.0.0</li>
</ul>
</div>
<div class="row-fluid">
<div id="leftColumn" class="span3">
<div class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header">Tycho</li>
<li>
<a href="../index.html" title="Introduction">
<i class="none"></i>
Introduction</a>
</li>
<li>
<a href="../tycho-compiler-plugin/plugin-info.html" title="Compiler Plugin">
<i class="none"></i>
Compiler Plugin</a>
</li>
<li>
<a href="../tycho-packaging-plugin/plugin-info.html" title="Packaging Plugin">
<i class="none"></i>
Packaging Plugin</a>
</li>
<li>
<a href="../BuildProperties.html" title="Build Properties">
<i class="none"></i>
Build Properties</a>
</li>
<li>
<a href="../tycho-surefire/tycho-surefire-plugin/plugin-info.html" title="Surefire Plugin">
<i class="none"></i>
Surefire Plugin</a>
</li>
<li>
<a href="../tycho-p2/tycho-p2-publisher-plugin/plugin-info.html" title="p2 Publisher Plugin">
<i class="none"></i>
p2 Publisher Plugin</a>
</li>
<li>
<a href="../tycho-p2/tycho-p2-repository-plugin/plugin-info.html" title="p2 Repository Plugin">
<i class="none"></i>
p2 Repository Plugin</a>
</li>
<li>
<a href="../tycho-p2/tycho-p2-director-plugin/plugin-info.html" title="p2 Director Plugin">
<i class="none"></i>
p2 Director Plugin</a>
</li>
<li>
<a href="../tycho-source-plugin/plugin-info.html" title="Source Plugin">
<i class="none"></i>
Source Plugin</a>
</li>
<li>
<a href="../tycho-release/tycho-versions-plugin/plugin-info.html" title="Versions Plugin">
<i class="none"></i>
Versions Plugin</a>
</li>
<li>
<a href="../tycho-pomgenerator-plugin/plugin-info.html" title="POM Generator Plugin">
<i class="none"></i>
POM Generator Plugin</a>
</li>
<li>
<a href="../TychoProperties.html" title="Tycho Properties">
<i class="none"></i>
Tycho Properties</a>
</li>
</ul>
<hr class="divider" />
<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>
</div>
<div id="bodyColumn" class="span9" >
<div class="section">
<h2>Plugin Documentation<a name="Plugin_Documentation"></a></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>Copyright (c) 2008, 2014 Sonatype Inc. and others. All rights
reserved. This program and the accompanying materials are made
available under the terms of the Eclipse Public License v1.0 which
accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html Contributors: Sonatype
Inc. - initial API and implementation</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>Copyright (c) 2008, 2012 Sonatype Inc. and others. All rights
reserved. This program and the accompanying materials are made
available under the terms of the Eclipse Public License v1.0 which
accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html Contributors: Sonatype
Inc. - initial API and implementation</td></tr>
<tr class="a">
<td><a href="update-site-mojo.html">tycho-packaging:update-site</a></td>
<td>Copyright (c) 2008, 2011 Sonatype Inc. and others. All rights
reserved. This program and the accompanying materials are made
available under the terms of the Eclipse Public License v1.0 which
accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html Contributors: Sonatype
Inc. - initial API and implementation</td></tr>
<tr class="b">
<td><a href="update-site-packaging-mojo.html">tycho-packaging:update-site-packaging</a></td>
<td>Copyright (c) 2010, 2011 SAP AG and others. All rights reserved.
This program and the accompanying materials are made available
under the terms of the Eclipse Public License v1.0 which
accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html Contributors: SAP AG -
initial API and implementation</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>
<div class="section">
<h3>System Requirements<a name="System_Requirements"></a></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></div>
<div class="section">
<h3>Usage<a name="Usage"></a></h3><a name="Usage"></a>
<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;1.0.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.0.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>
<hr/>
<footer>
<div class="container-fluid">
<div class="row span12">Copyright &copy; 2008-2017
<a href="http://www.eclipse.org/">Eclipse Foundation</a>.
All Rights Reserved.
</div>
</div>
</footer>
</body>
</html>