<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8 from target/generated-site/xdoc/package-flatpak-mojo.xml at 2018-04-12
 | Rendered using Apache Maven Fluido Skin 1.7
-->
<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="20180412" />
    <meta http-equiv="Content-Language" content="en" />
    <title>eclipse-flatpak-packager &#x2013; eclipse-flatpak-packager:package-flatpak</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.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.7.min.js"></script>
  </head>
  <body class="topBarDisabled">
    <div class="container-fluid">
      <div id="banner">
        <div class="pull-left"><a href="https://eclipse.org" id="bannerLeft"><img src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse.png"  alt="Eclipse"/></a></div>
        <div class="pull-right"></div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
        <li id="publishDate">Last Published: 2018-04-12<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.1.5</li>
        </ul>
      </div>
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div class="well sidebar-nav">
    <ul class="nav nav-list">
      <li class="nav-header">CBI Maven Plugins</li>
    <li><a href="../index.html" title="Introduction"><span class="none"></span>Introduction</a></li>
    <li><a href="../eclipse-jarsigner-plugin/plugin-info.html" title="Jar Signer"><span class="none"></span>Jar Signer</a></li>
    <li><a href="../eclipse-winsigner-plugin/plugin-info.html" title="Windows Exe Signer"><span class="none"></span>Windows Exe Signer</a></li>
    <li><a href="../eclipse-macsigner-plugin/plugin-info.html" title="macOS App Signer"><span class="none"></span>macOS App Signer</a></li>
    <li><a href="../eclipse-dmg-packager/plugin-info.html" title="macOS DMG Packager"><span class="none"></span>macOS DMG Packager</a></li>
    <li><a href="../eclipse-flatpak-packager/plugin-info.html" title="Linux Flatpak Packager"><span class="none"></span>Linux Flatpak Packager</a></li>
    <li><a href="../eclipse-cbi-plugin/plugin-info.html" title="Utilities"><span class="none"></span>Utilities</a></li>
</ul>
          <hr />
          <div id="poweredBy">
            <div class="clear"></div>
            <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="span10" >

  
    <div class="section">
<h2><a name="eclipse-flatpak-packager:package-flatpak"></a>eclipse-flatpak-packager:package-flatpak</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.cbi.maven.plugins:eclipse-flatpak-packager:1.1.5:package-flatpak</p>
      
<p><b>Description</b>:</p>
      
<div>Create a Flatpak application from the archived product output of
the tycho-p2-director-plugin and exports the application to a
Flatpak repository. Signing the Flatpak repository is optional, but
highly recommended.</div>
      
<p><b>Attributes</b>:</p>
      
<ul>
        
<li>Requires a Maven project to be executed.</li>
        
<li>Since version: <tt>1.1.5</tt>.</li>
        
<li>Binds by default to the <a class="externalLink" href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <tt>package</tt>.</li>
      </ul>
      
<div class="section">
<h3><a name="Required_Parameters"></a>Required Parameters</h3>
        
<table class="table table-striped" border="0">
          
<tr class="a">
            
<th>Name</th>
            
<th>Type</th>
            
<th>Since</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#branch">&lt;branch&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>The branch of the application, defaults to &quot;master&quot; but can be set
to identify the stream, for example: &quot;Oxygen&quot; or &quot;4.7&quot;<br /><b>Default value is</b>: <tt>master</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#command">&lt;command&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>The filename or path to the main binary of the application,
defaults to &quot;eclipse&quot;<br /><b>Default value is</b>: <tt>eclipse</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#description">&lt;description&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>A longer description of the Flatpak application that may be shown
in distro software centres.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#id">&lt;id&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>A unique identifier for the Flatpak application, for example:
&quot;org.eclipse.Platform&quot;<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#license">&lt;license&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>The license that the Flatpak application is distributed under. It
should be a valid <a class="externalLink" href="https://spdx.org/specifications">SPDX
license expression</a>. For example: 

<ul>

<li><tt>EPL-1.0</tt></li>

<li><tt>Apache-2.0 AND LGPL-3.0-or-later</tt></li>
</ul>

<p>A full list of recognized licenses and their identifiers can be
found at the <a class="externalLink" href="https://spdx.org/licenses/">SPDX OpenSource
License Registry</a>.</p><br /><b>Default value is</b>: <tt>EPL-1.0</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#minFlatpakVersion">&lt;minFlatpakVersion&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>The minimum version of Flatpak needed at runtime, that this
application will support. Defaults to &quot;0.8.8&quot; (the version
available on RHEL 7.5)<br /><b>Default value is</b>: <tt>0.8.8</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#name">&lt;name&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>A friendly name for the Flatpak application that will be shown to
use in software centres and in desktop environments.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#runtimeVersion">&lt;runtimeVersion&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>The version of the Gnome runtime on which to build the Flatpak
application. Defaults to &quot;3.28&quot;<br /><b>Default value is</b>: <tt>3.28</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#source">&lt;source&gt;</a></tt></td>
            
<td><tt>File</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>An <tt>.tar.gz</tt> or <tt>.zip</tt> file containing a
Linux product from which to generate a Flatpak application.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#summary">&lt;summary&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>A short description of the Flatpak application that may be shown in
distro software centres and in desktop environments.<br /></td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3><a name="Optional_Parameters"></a>Optional Parameters</h3>
        
<table class="table table-striped" border="0">
          
<tr class="a">
            
<th>Name</th>
            
<th>Type</th>
            
<th>Since</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#additionalSources">&lt;additionalSources&gt;</a></tt></td>
            
<td><tt>List</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>An optional list of additional source files that should be
installed into the Flatpak application. These files are simply
copied into the sandbox at the given location. For example: 

<div>
<pre>
&lt;additionalSources&gt;
        &lt;additionalSource&gt;
                &lt;source&gt;/path/to/local/file&lt;/source&gt;
                &lt;destination&gt;/path/to/location/inside/the/sandbox&lt;/destination&gt;
        &lt;/additionalSources&gt;
&lt;/additionalSources&gt;
</pre></div><br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#continueOnFail">&lt;continueOnFail&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>Whether the build should be stopped if the packaging process fails.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>cbi.flatpakager.continueOnFail</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#gpgHome">&lt;gpgHome&gt;</a></tt></td>
            
<td><tt>File</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>The location of the GPG secure keyring to use when signing the
Flatpak application. Defaults to the &quot;.gnupg&quot; directory in the
user's home.<br /><b>User property is</b>: <tt>cbi.flatpakager.gpghome</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#gpgKey">&lt;gpgKey&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>The GPG key to use when signing the Flatpak application.<br /><b>User property is</b>: <tt>cbi.flatpakager.gpgkey</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#maintainer">&lt;maintainer&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>An optional email address that can be used to contact the project
about invalid or incomplete metadata.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#repository">&lt;repository&gt;</a></tt></td>
            
<td><tt>File</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>The repository to which the new Flatpak application should be
exported. If not specified, a new repository will be created inside
the build directory.<br /><b>User property is</b>: <tt>cbi.flatpakager.repo</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#repositoryUrl">&lt;repositoryUrl&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>The URL at which the Flatpak repository will be available to users,
this is embedded into generated &quot;flatpakrepo&quot; and &quot;flatpakref&quot;
files.<br /><b>Default value is</b>: <tt>http://www.example.com/flatpak/repo</tt>.<br /><b>User property is</b>: <tt>cbi.flatpakager.repoUrl</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#screenshots">&lt;screenshots&gt;</a></tt></td>
            
<td><tt>List</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>An optional list of URLs to screenshots that may be shown in distro
software centres.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#serviceUrl">&lt;serviceUrl&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>An optional URL for the Flatpak application packaging web service. 

<p>By default, the Flatpak application will be generated locally.
If the Flatpak tools are unavailable locally, or the build is
running on an architecture or OS where Flatpak is not supported,
then a URL may be specified that indicated the location of the
Flatpak packaging web service. For example:</p>

<p>http://build.eclipse.org:31338/flatpak-packager</p><br /><b>User property is</b>: <tt>cbi.flatpakager.serviceUrl</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#sign">&lt;sign&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>Whether the Flatpak application should be GPG signed.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>cbi.flatpakager.sign</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#skip">&lt;skip&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>Skips the execution of this plugin.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>cbi.flatpakager.skip</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#timeoutMillis">&lt;timeoutMillis&gt;</a></tt></td>
            
<td><tt>int</tt></td>
            
<td><tt>1.1.5</tt></td>
            
<td>Defines the timeout in milliseconds for any communication with the
packaging web service. Defaults to zero, which is interpreted as an
infinite timeout. This only means something if a
<tt>serviceUrl</tt> is specified.<br /><b>Default value is</b>: <tt>0</tt>.<br /><b>User property is</b>: <tt>cbi.flatpakager.timeoutMillis</tt>.<br /></td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        
<div class="section">
<h4><a name="a.3CadditionalSources.3E"></a><b><a name="additionalSources">&lt;additionalSources&gt;</a></b></h4>
        
<div>An optional list of additional source files that should be
installed into the Flatpak application. These files are simply
copied into the sandbox at the given location. For example: 

<div>
<pre>
&lt;additionalSources&gt;
        &lt;additionalSource&gt;
                &lt;source&gt;/path/to/local/file&lt;/source&gt;
                &lt;destination&gt;/path/to/location/inside/the/sandbox&lt;/destination&gt;
        &lt;/additionalSources&gt;
&lt;/additionalSources&gt;
</pre></div></div>
        
<ul>
          
<li><b>Type</b>: <tt>java.util.List</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3Cbranch.3E"></a><b><a name="branch">&lt;branch&gt;</a></b></h4>
        
<div>The branch of the application, defaults to &quot;master&quot; but can be set
to identify the stream, for example: &quot;Oxygen&quot; or &quot;4.7&quot;</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
          
<li><b>Default</b>: <tt>master</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3Ccommand.3E"></a><b><a name="command">&lt;command&gt;</a></b></h4>
        
<div>The filename or path to the main binary of the application,
defaults to &quot;eclipse&quot;</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
          
<li><b>Default</b>: <tt>eclipse</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CcontinueOnFail.3E"></a><b><a name="continueOnFail">&lt;continueOnFail&gt;</a></b></h4>
        
<div>Whether the build should be stopped if the packaging process fails.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.flatpakager.continueOnFail</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3Cdescription.3E"></a><b><a name="description">&lt;description&gt;</a></b></h4>
        
<div>A longer description of the Flatpak application that may be shown
in distro software centres.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CgpgHome.3E"></a><b><a name="gpgHome">&lt;gpgHome&gt;</a></b></h4>
        
<div>The location of the GPG secure keyring to use when signing the
Flatpak application. Defaults to the &quot;.gnupg&quot; directory in the
user's home.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.io.File</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.flatpakager.gpghome</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CgpgKey.3E"></a><b><a name="gpgKey">&lt;gpgKey&gt;</a></b></h4>
        
<div>The GPG key to use when signing the Flatpak application.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.flatpakager.gpgkey</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3Cid.3E"></a><b><a name="id">&lt;id&gt;</a></b></h4>
        
<div>A unique identifier for the Flatpak application, for example:
&quot;org.eclipse.Platform&quot;</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3Clicense.3E"></a><b><a name="license">&lt;license&gt;</a></b></h4>
        
<div>The license that the Flatpak application is distributed under. It
should be a valid <a class="externalLink" href="https://spdx.org/specifications">SPDX
license expression</a>. For example: 

<ul>

<li><tt>EPL-1.0</tt></li>

<li><tt>Apache-2.0 AND LGPL-3.0-or-later</tt></li>
</ul>

<p>A full list of recognized licenses and their identifiers can be
found at the <a class="externalLink" href="https://spdx.org/licenses/">SPDX OpenSource
License Registry</a>.</p></div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
          
<li><b>Default</b>: <tt>EPL-1.0</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3Cmaintainer.3E"></a><b><a name="maintainer">&lt;maintainer&gt;</a></b></h4>
        
<div>An optional email address that can be used to contact the project
about invalid or incomplete metadata.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CminFlatpakVersion.3E"></a><b><a name="minFlatpakVersion">&lt;minFlatpakVersion&gt;</a></b></h4>
        
<div>The minimum version of Flatpak needed at runtime, that this
application will support. Defaults to &quot;0.8.8&quot; (the version
available on RHEL 7.5)</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
          
<li><b>Default</b>: <tt>0.8.8</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3Cname.3E"></a><b><a name="name">&lt;name&gt;</a></b></h4>
        
<div>A friendly name for the Flatpak application that will be shown to
use in software centres and in desktop environments.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3Crepository.3E"></a><b><a name="repository">&lt;repository&gt;</a></b></h4>
        
<div>The repository to which the new Flatpak application should be
exported. If not specified, a new repository will be created inside
the build directory.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.io.File</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.flatpakager.repo</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CrepositoryUrl.3E"></a><b><a name="repositoryUrl">&lt;repositoryUrl&gt;</a></b></h4>
        
<div>The URL at which the Flatpak repository will be available to users,
this is embedded into generated &quot;flatpakrepo&quot; and &quot;flatpakref&quot;
files.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.flatpakager.repoUrl</tt></li>
          
<li><b>Default</b>: <tt>http://www.example.com/flatpak/repo</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CruntimeVersion.3E"></a><b><a name="runtimeVersion">&lt;runtimeVersion&gt;</a></b></h4>
        
<div>The version of the Gnome runtime on which to build the Flatpak
application. Defaults to &quot;3.28&quot;</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
          
<li><b>Default</b>: <tt>3.28</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3Cscreenshots.3E"></a><b><a name="screenshots">&lt;screenshots&gt;</a></b></h4>
        
<div>An optional list of URLs to screenshots that may be shown in distro
software centres.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.util.List</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CserviceUrl.3E"></a><b><a name="serviceUrl">&lt;serviceUrl&gt;</a></b></h4>
        
<div>An optional URL for the Flatpak application packaging web service. 

<p>By default, the Flatpak application will be generated locally.
If the Flatpak tools are unavailable locally, or the build is
running on an architecture or OS where Flatpak is not supported,
then a URL may be specified that indicated the location of the
Flatpak packaging web service. For example:</p>

<p>http://build.eclipse.org:31338/flatpak-packager</p></div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.flatpakager.serviceUrl</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3Csign.3E"></a><b><a name="sign">&lt;sign&gt;</a></b></h4>
        
<div>Whether the Flatpak application should be GPG signed.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.flatpakager.sign</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3Cskip.3E"></a><b><a name="skip">&lt;skip&gt;</a></b></h4>
        
<div>Skips the execution of this plugin.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.flatpakager.skip</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3Csource.3E"></a><b><a name="source">&lt;source&gt;</a></b></h4>
        
<div>An <tt>.tar.gz</tt> or <tt>.zip</tt> file containing a
Linux product from which to generate a Flatpak application.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.io.File</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3Csummary.3E"></a><b><a name="summary">&lt;summary&gt;</a></b></h4>
        
<div>A short description of the Flatpak application that may be shown in
distro software centres and in desktop environments.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CtimeoutMillis.3E"></a><b><a name="timeoutMillis">&lt;timeoutMillis&gt;</a></b></h4>
        
<div>Defines the timeout in milliseconds for any communication with the
packaging web service. Defaults to zero, which is interpreted as an
infinite timeout. This only means something if a
<tt>serviceUrl</tt> is specified.</div>
        
<ul>
          
<li><b>Type</b>: <tt>int</tt></li>
          
<li><b>Since</b>: <tt>1.1.5</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.flatpakager.timeoutMillis</tt></li>
          
<li><b>Default</b>: <tt>0</tt></li>
        </ul>
      </div></div>
    </div>
  

        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &copy;2018
<a href="http://eclipse.org/">Eclipse Foundation</a>.
All rights reserved.</p>
        </div>
      </div>
    </footer>
  </body>
</html>
