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