<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 2016-01-28 
 | Rendered using Apache Maven Fluido Skin 1.4
-->
<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="20160128" />
    <meta http-equiv="Content-Language" content="en" />
    <title>eclipse-jarsigner-plugin &#x2013; eclipse-jarsigner:sign</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.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.4.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://eclipse.org/eclipse.org-common/themes/Nova/images/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: 2016-01-28
                      <span class="divider">|</span>
                   </li>
                  <li id="projectVersion">Version: 1.1.3
                      </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="OS X App Signer">
          <span class="none"></span>
        OS X App Signer</a>
            </li>
                
      <li>
  
                          <a href="../eclipse-dmg-packager/plugin-info.html" title="OS X DMG Packager">
          <span class="none"></span>
        OS X DMG 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-jarsigner:sign"></a>eclipse-jarsigner:sign</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.cbi.maven.plugins:eclipse-jarsigner-plugin:1.1.3:sign</p>
      
<p><b>Description</b>:</p>
      
<div>Signs project main and attached artifacts using the Eclipse
jarsigner webservice. Only artifacts with <tt>.jar</tt>
extension are signed, other artifacts are not signed but a warning
message is logged.</div>
      
<p><b>Attributes</b>:</p>
      
<ul>
        
<li>Requires a Maven project to be executed.</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><b><a href="#signerUrl">signerUrl</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>1.0.4</tt></td>
            
<td>The signing service URL for signing Jar files. This service should
return a signed jar file.<br /><b>Default value is</b>: <tt>http://build.eclipse.org:31338/sign</tt>.<br /><b>User property is</b>: <tt>cbi.jarsigner.signerUrl</tt>.</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><b><a href="#continueOnFail">continueOnFail</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>1.0.5 (for the parameter, since 1.1.3 for the qualified user
       property).</tt></td>
            
<td>Whether the build should be stopped if the signing process fails.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>cbi.jarsigner.continueOnFail</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#deprecatedContinueOnFail">deprecatedContinueOnFail</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>1.0.5 (for the user property, since 1.1.3 for the parameter).</tt></td>
            
<td><b>Deprecated.</b> The user property <tt>continueOnFail</tt> is deprecated. You
should use the qualified property
<tt>cbi.jarsigner.continueOnFail</tt> instead. The
<tt>deprecatedContinueOnFail</tt> parameter has been introduced
to support this deprecated user property for backward compatibility
only.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>continueOnFail</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#deprecatedRetryLimit">deprecatedRetryLimit</a></b></td>
            
<td><tt>int</tt></td>
            
<td><tt>1.1.0 (for the property, since 1.1.3 for the parameter)</tt></td>
            
<td><b>Deprecated.</b> The user property <tt>retryLimit</tt> is deprecated. You should
use the qualified property <tt>cbi.jarsigner.retryLimit</tt>
instead. The <tt>deprecatedRetryLimit</tt> parameter has been
introduced to support this deprecated user property for backward
compatibility only.<br /><b>Default value is</b>: <tt>3</tt>.<br /><b>User property is</b>: <tt>retryLimit</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#deprecatedRetryTimer">deprecatedRetryTimer</a></b></td>
            
<td><tt>int</tt></td>
            
<td><tt>1.1.0 (for the user property, since 1.1.3 for the parameter).</tt></td>
            
<td><b>Deprecated.</b> The user property <tt>retryTimer</tt> is deprecated. You should
use the qualified property <tt>cbi.jarsigner.retryTimer</tt>
instead. The <tt>deprecatedRetryTimer</tt> parameter has been
introduced to support this deprecated user property for backward
compatibility only.<br /><b>Default value is</b>: <tt>10</tt>.<br /><b>User property is</b>: <tt>retryTimer</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#digestAlgorithm">digestAlgorithm</a></b></td>
            
<td><tt>MessageDigestAlgorithm</tt></td>
            
<td><tt>1.1.3</tt></td>
            
<td>The digest algorithm to use for signing the jar file. Supported
values depends on the remote signing web services. Values
recognized by this plugin are: 

<ul>

<li><b>DEFAULT</b>, tells to the remote signing
webservice to use its default digest algorithm to sign the jar</li>

<li><b>MD2</b></li>

<li><b>MD5</b></li>

<li><b>SHA_1</b></li>

<li><b>SHA1</b> Use this value if you need to be
compatible with some old frameworks (e.g., Eclipse Equinox 3.7 /
Indigo). Use SHA_1 otherwise.</li>

<li><b>SHA_224</b></li>

<li><b>SHA_256</b></li>

<li><b>SHA_384</b></li>

<li><b>SHA_512</b></li>
</ul><br /><b>Default value is</b>: <tt>DEFAULT</tt>.<br /><b>User property is</b>: <tt>cbi.jarsigner.digestAlgorithm</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#excludeInnerJars">excludeInnerJars</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>1.0.5</tt></td>
            
<td>Whether to excludes signing inner jars (not recursive, only apply
to first level Jars inside the build Jar file; deeper jars are
ignored in all cases).<br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#resigningStrategy">resigningStrategy</a></b></td>
            
<td><tt>JarResigner$Strategy</tt></td>
            
<td><tt>1.1.3</tt></td>
            
<td>The strategy to be used if the artifacts of the current project are
already signed (e.g., when <a class="externalLink" href="https://wiki.eclipse.org/Tycho/Reproducible_Version_Qualifiers">replaced
with a baseline version</a>). Valid values are: 

<ul>

<li><b>DO_NOT_RESIGN</b>, do nothing with the jar
file</li>

<li><b>THROW_EXCEPTION</b>, throws an exception and stop
the build if <tt>continueOnFail</tt> property is not set</li>

<li><b>RESIGN</b>, resigns the jar with the same
parameter as if it was not already signed (in particular the
configured <tt>digestAlgorithm</tt>)</li>

<li><b>RESIGN_WITH_SAME_DIGEST_ALGORITHM</b>, resigns the
jar with the same digest algorithm as the one used when it has been
previously signed. Thus, the <tt>digestAlgorithm</tt> is
ignored for the already signed jars.</li>

<li><b>OVERWRITE</b>, removes every signatures from the
jar and resigned it with the same parameter as if it was not
already signed (in particular the configured
<tt>digestAlgorithm</tt>)</li>

<li><b>OVERWRITE_WITH_SAME_DIGEST_ALGORITHM</b>, removes
every signatures from the jar and resign it with the same digest
algorithm as the one used when it has been previously signed. Thus,
the <tt>digestAlgorithm</tt> is ignored for the already signed
jars.</li>
</ul><br /><b>Default value is</b>: <tt>RESIGN</tt>.<br /><b>User property is</b>: <tt>cbi.jarsigner.resigningStrategy</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#retryLimit">retryLimit</a></b></td>
            
<td><tt>int</tt></td>
            
<td><tt>1.1.0 (for the parameter, since 1.1.3 for the qualified user user
       property)</tt></td>
            
<td>Number of times to retry signing if the server fails to sign.<br /><b>Default value is</b>: <tt>3</tt>.<br /><b>User property is</b>: <tt>cbi.jarsigner.retryLimit</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#retryTimer">retryTimer</a></b></td>
            
<td><tt>int</tt></td>
            
<td><tt>1.1.0 (for the parameter, since 1.1.3 for the qualified user user
       property)</tt></td>
            
<td>Number of seconds to wait before retrying to sign.<br /><b>Default value is</b>: <tt>10</tt>.<br /><b>User property is</b>: <tt>cbi.jarsigner.retryTimer</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#signatureAlgorithm">signatureAlgorithm</a></b></td>
            
<td><tt>SignatureAlgorithm</tt></td>
            
<td><tt>1.1.3</tt></td>
            
<td>The signature algorithm to use for signing the jar file. Supported
values depends on the remote signing web services. Values
recognized by this plugin are: 

<ul>

<li><b>DEFAULT</b>, tells to the remote signing
webservice to use its default digest algorithm to sign the jar</li>

<li><b>NONEwithRSA</b></li>

<li><b>MD2withRSA</b></li>

<li><b>MD5withRSA</b></li>

<li><b>SHA1withRSA</b></li>

<li><b>SHA224withRSA</b></li>

<li><b>SHA256withRSA</b></li>

<li><b>SHA384withRSA</b></li>

<li><b>SHA512withRSA</b></li>

<li><b>SHA1withDSA</b></li>

<li><b>SHA224withDSA</b></li>

<li><b>SHA256withDSA</b></li>

<li><b>NONEwithECDSA</b></li>

<li><b>SHA1withECDSA</b></li>

<li><b>SHA224withECDSA</b></li>

<li><b>SHA256withECDSA</b></li>

<li><b>SHA384withECDSA</b></li>

<li><b>SHA512withECDSA</b></li>
</ul><br /><b>Default value is</b>: <tt>DEFAULT</tt>.<br /><b>User property is</b>: <tt>cbi.jarsigner.signatureAlgorithm</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#skip">skip</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>1.0.4</tt></td>
            
<td>Whether the execution of this plugin should be skipped.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>cbi.jarsigner.skip</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
            
<td><tt>List</tt></td>
            
<td><tt>-</tt></td>
            
<td><b>Deprecated.</b> Not used anymore.<br /></td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        
<p><b><a name="continueOnFail">continueOnFail</a>:</b></p>
        
<div>Whether the build should be stopped if the signing process fails.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>1.0.5 (for the parameter, since 1.1.3 for the qualified user
       property).</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.jarsigner.continueOnFail</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="deprecatedContinueOnFail">deprecatedContinueOnFail</a>:</b></p>
        
<div><b>Deprecated.</b> The user property <tt>continueOnFail</tt> is deprecated. You
should use the qualified property
<tt>cbi.jarsigner.continueOnFail</tt> instead. The
<tt>deprecatedContinueOnFail</tt> parameter has been introduced
to support this deprecated user property for backward compatibility
only.</div>
        
<div>Whether the build should be stopped if the signing process fails.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>1.0.5 (for the user property, since 1.1.3 for the parameter).</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>continueOnFail</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="deprecatedRetryLimit">deprecatedRetryLimit</a>:</b></p>
        
<div><b>Deprecated.</b> The user property <tt>retryLimit</tt> is deprecated. You should
use the qualified property <tt>cbi.jarsigner.retryLimit</tt>
instead. The <tt>deprecatedRetryLimit</tt> parameter has been
introduced to support this deprecated user property for backward
compatibility only.</div>
        
<div>Number of times to retry signing if the server fails to sign.</div>
        
<ul>
          
<li><b>Type</b>: <tt>int</tt></li>
          
<li><b>Since</b>: <tt>1.1.0 (for the property, since 1.1.3 for the parameter)</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>retryLimit</tt></li>
          
<li><b>Default</b>: <tt>3</tt></li>
        </ul><hr />
<p><b><a name="deprecatedRetryTimer">deprecatedRetryTimer</a>:</b></p>
        
<div><b>Deprecated.</b> The user property <tt>retryTimer</tt> is deprecated. You should
use the qualified property <tt>cbi.jarsigner.retryTimer</tt>
instead. The <tt>deprecatedRetryTimer</tt> parameter has been
introduced to support this deprecated user property for backward
compatibility only.</div>
        
<div>Number of seconds to wait before retrying to sign.</div>
        
<ul>
          
<li><b>Type</b>: <tt>int</tt></li>
          
<li><b>Since</b>: <tt>1.1.0 (for the user property, since 1.1.3 for the parameter).</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>retryTimer</tt></li>
          
<li><b>Default</b>: <tt>10</tt></li>
        </ul><hr />
<p><b><a name="digestAlgorithm">digestAlgorithm</a>:</b></p>
        
<div>The digest algorithm to use for signing the jar file. Supported
values depends on the remote signing web services. Values
recognized by this plugin are: 

<ul>

<li><b>DEFAULT</b>, tells to the remote signing
webservice to use its default digest algorithm to sign the jar</li>

<li><b>MD2</b></li>

<li><b>MD5</b></li>

<li><b>SHA_1</b></li>

<li><b>SHA1</b> Use this value if you need to be
compatible with some old frameworks (e.g., Eclipse Equinox 3.7 /
Indigo). Use SHA_1 otherwise.</li>

<li><b>SHA_224</b></li>

<li><b>SHA_256</b></li>

<li><b>SHA_384</b></li>

<li><b>SHA_512</b></li>
</ul></div>
        
<ul>
          
<li><b>Type</b>: <tt>org.eclipse.cbi.common.security.MessageDigestAlgorithm</tt></li>
          
<li><b>Since</b>: <tt>1.1.3</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.jarsigner.digestAlgorithm</tt></li>
          
<li><b>Default</b>: <tt>DEFAULT</tt></li>
        </ul><hr />
<p><b><a name="excludeInnerJars">excludeInnerJars</a>:</b></p>
        
<div>Whether to excludes signing inner jars (not recursive, only apply
to first level Jars inside the build Jar file; deeper jars are
ignored in all cases).</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>1.0.5</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="resigningStrategy">resigningStrategy</a>:</b></p>
        
<div>The strategy to be used if the artifacts of the current project are
already signed (e.g., when <a class="externalLink" href="https://wiki.eclipse.org/Tycho/Reproducible_Version_Qualifiers">replaced
with a baseline version</a>). Valid values are: 

<ul>

<li><b>DO_NOT_RESIGN</b>, do nothing with the jar
file</li>

<li><b>THROW_EXCEPTION</b>, throws an exception and stop
the build if <tt>continueOnFail</tt> property is not set</li>

<li><b>RESIGN</b>, resigns the jar with the same
parameter as if it was not already signed (in particular the
configured <tt>digestAlgorithm</tt>)</li>

<li><b>RESIGN_WITH_SAME_DIGEST_ALGORITHM</b>, resigns the
jar with the same digest algorithm as the one used when it has been
previously signed. Thus, the <tt>digestAlgorithm</tt> is
ignored for the already signed jars.</li>

<li><b>OVERWRITE</b>, removes every signatures from the
jar and resigned it with the same parameter as if it was not
already signed (in particular the configured
<tt>digestAlgorithm</tt>)</li>

<li><b>OVERWRITE_WITH_SAME_DIGEST_ALGORITHM</b>, removes
every signatures from the jar and resign it with the same digest
algorithm as the one used when it has been previously signed. Thus,
the <tt>digestAlgorithm</tt> is ignored for the already signed
jars.</li>
</ul></div>
        
<ul>
          
<li><b>Type</b>: <tt>org.eclipse.cbi.maven.plugins.jarsigner.JarResigner$Strategy</tt></li>
          
<li><b>Since</b>: <tt>1.1.3</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.jarsigner.resigningStrategy</tt></li>
          
<li><b>Default</b>: <tt>RESIGN</tt></li>
        </ul><hr />
<p><b><a name="retryLimit">retryLimit</a>:</b></p>
        
<div>Number of times to retry signing if the server fails to sign.</div>
        
<ul>
          
<li><b>Type</b>: <tt>int</tt></li>
          
<li><b>Since</b>: <tt>1.1.0 (for the parameter, since 1.1.3 for the qualified user user
       property)</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.jarsigner.retryLimit</tt></li>
          
<li><b>Default</b>: <tt>3</tt></li>
        </ul><hr />
<p><b><a name="retryTimer">retryTimer</a>:</b></p>
        
<div>Number of seconds to wait before retrying to sign.</div>
        
<ul>
          
<li><b>Type</b>: <tt>int</tt></li>
          
<li><b>Since</b>: <tt>1.1.0 (for the parameter, since 1.1.3 for the qualified user user
       property)</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.jarsigner.retryTimer</tt></li>
          
<li><b>Default</b>: <tt>10</tt></li>
        </ul><hr />
<p><b><a name="signatureAlgorithm">signatureAlgorithm</a>:</b></p>
        
<div>The signature algorithm to use for signing the jar file. Supported
values depends on the remote signing web services. Values
recognized by this plugin are: 

<ul>

<li><b>DEFAULT</b>, tells to the remote signing
webservice to use its default digest algorithm to sign the jar</li>

<li><b>NONEwithRSA</b></li>

<li><b>MD2withRSA</b></li>

<li><b>MD5withRSA</b></li>

<li><b>SHA1withRSA</b></li>

<li><b>SHA224withRSA</b></li>

<li><b>SHA256withRSA</b></li>

<li><b>SHA384withRSA</b></li>

<li><b>SHA512withRSA</b></li>

<li><b>SHA1withDSA</b></li>

<li><b>SHA224withDSA</b></li>

<li><b>SHA256withDSA</b></li>

<li><b>NONEwithECDSA</b></li>

<li><b>SHA1withECDSA</b></li>

<li><b>SHA224withECDSA</b></li>

<li><b>SHA256withECDSA</b></li>

<li><b>SHA384withECDSA</b></li>

<li><b>SHA512withECDSA</b></li>
</ul></div>
        
<ul>
          
<li><b>Type</b>: <tt>org.eclipse.cbi.common.security.SignatureAlgorithm</tt></li>
          
<li><b>Since</b>: <tt>1.1.3</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.jarsigner.signatureAlgorithm</tt></li>
          
<li><b>Default</b>: <tt>DEFAULT</tt></li>
        </ul><hr />
<p><b><a name="signerUrl">signerUrl</a>:</b></p>
        
<div>The signing service URL for signing Jar files. This service should
return a signed jar file.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Since</b>: <tt>1.0.4</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
          
<li><b>User Property</b>: <tt>cbi.jarsigner.signerUrl</tt></li>
          
<li><b>Default</b>: <tt>http://build.eclipse.org:31338/sign</tt></li>
        </ul><hr />
<p><b><a name="skip">skip</a>:</b></p>
        
<div>Whether the execution of this plugin should be skipped.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>1.0.4</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.jarsigner.skip</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
        
<div><b>Deprecated.</b> Not used anymore.</div>
        
<div>Project types which this plugin supports.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.util.List</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul>
      </div>
    </div>
  

                  </div>
            </div>
          </div>

    <hr/>

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

        
                </div>
    </footer>
        </body>
</html>
