<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 2014-07-14
 | 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="20140714" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Eclipse :: CBI :: The Eclipse JAR Signing Maven Plugin - 
    eclipse-jarsigner:sign</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">
                                    <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: 2014-07-14</li>
                  <li class="divider">|</li> <li id="projectVersion">Version: 1.1.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">CBI Plugins</li>
                                
      <li>
    
                          <a href="../project-info.html" title="Project Info">
          <i class="none"></i>
        Project Info</a>
            </li>
                  
      <li>
    
                          <a href="../eclipse-jarsigner-plugin/plugin-info.html" title="Eclipse Jar Signing Plugin">
          <i class="none"></i>
        Eclipse Jar Signing Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../eclipse-macsigner-plugin/plugin-info.html" title="Eclipse Mac Signing Plugin">
          <i class="none"></i>
        Eclipse Mac Signing Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../eclipse-winsigner-plugin/plugin-info.html" title="Eclipse Windows Signing Plugin">
          <i class="none"></i>
        Eclipse Windows Signing Plugin</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>eclipse-jarsigner:sign<a name="eclipse-jarsigner:sign"></a></h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.cbi.maven.plugins:eclipse-jarsigner-plugin:1.1.0:sign</p>
      
<p><b>Description</b>:</p>
      
<div>Signs project main and attached artifact using <a class="externalLink" href="http://wiki.eclipse.org/IT_Infrastructure_Doc#Sign_my_plugins.2FZIP_files.3F">Eclipse
jarsigner webservice</a>. Only artifacts that have extension
``.jar'', other artifacts are not signed with a debug log message.</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>Required Parameters<a name="Required_Parameters"></a></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 

<p>This service should return a signed jar file.</p>

<p>The Official Eclipse signer service URL as described in the <a class="externalLink" href="http://wiki.eclipse.org/IT_Infrastructure_Doc#Sign_my_plugins.2FZIP_files.3F">wiki</a>.</p>

<p style="font-weight: bold">Configuration via Maven
commandline</p>

<div>
<pre>
-Dcbi.jarsigner.signerUrl=http://localhost/sign.php
</pre></div>


<p style="font-weight: bold">Configuration via pom.xml</p>

<div>
<pre>
<tt>
&lt;configuration&gt;
  &lt;signerUrl&gt;http://localhost/sign&lt;/signerUrl&gt;
&lt;/configuration&gt;
</tt>
</pre></div><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>Optional Parameters<a name="Optional_Parameters"></a></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</tt></td>
            
<td>Continue the build even if signing fails 

<p style="font-weight: bold">Configuration via Maven
commandline</p>

<div>
<pre>
-DcontinueOnFail=true
</pre></div>


<p style="font-weight: bold">Configuration via pom.xml</p>

<div>
<pre>
<tt>
&lt;configuration&gt;
  &lt;continueOnFail&gt;true&lt;/continueOnFail&gt;
&lt;/configuration&gt;
</tt>
</pre></div><br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>continueOnFail</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>Excludes signing inner jars 

<p style="font-weight: bold">Configuration via pom.xml</p>

<div>
<pre>
<tt>
&lt;configuration&gt;
  &lt;excludeInnerJars&gt;true&lt;/excludeInnerJars&gt;
&lt;/configuration&gt;
</tt>
</pre></div><br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#retryLimit">retryLimit</a></b></td>
            
<td><tt>int</tt></td>
            
<td><tt>1.1.0</tt></td>
            
<td>Number of times to retry signing if server fails to sign<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="#retryTimer">retryTimer</a></b></td>
            
<td><tt>int</tt></td>
            
<td><tt>1.1.0</tt></td>
            
<td>Number of seconds to wait before retrying to sign<br /><b>Default value is</b>: <tt>30</tt>.<br /><b>User property is</b>: <tt>retryTimer</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>Skips the execution of this plugin<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>Project types which this plugin supports 

<p style="font-weight: bold">Default Types Supported</p>

<div>
<pre>
jar                 : standard jars
bundle              : felix/bnd bundles
maven-plugin        : maven plugins
eclipse-plugin      : Tycho eclipse-plugin
eclipse-test-plugin : Tycho eclipse-test-plugin
eclipse-feature     : Tycho eclipse-feature
</pre></div><br /></td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3>Parameter Details<a name="Parameter_Details"></a></h3>
        
<p><b><a name="continueOnFail">continueOnFail</a>:</b></p>
        
<div>Continue the build even if signing fails 

<p style="font-weight: bold">Configuration via Maven
commandline</p>

<div>
<pre>
-DcontinueOnFail=true
</pre></div>


<p style="font-weight: bold">Configuration via pom.xml</p>

<div>
<pre>
<tt>
&lt;configuration&gt;
  &lt;continueOnFail&gt;true&lt;/continueOnFail&gt;
&lt;/configuration&gt;
</tt>
</pre></div></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>User Property</b>: <tt>continueOnFail</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="excludeInnerJars">excludeInnerJars</a>:</b></p>
        
<div>Excludes signing inner jars 

<p style="font-weight: bold">Configuration via pom.xml</p>

<div>
<pre>
<tt>
&lt;configuration&gt;
  &lt;excludeInnerJars&gt;true&lt;/excludeInnerJars&gt;
&lt;/configuration&gt;
</tt>
</pre></div></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="retryLimit">retryLimit</a>:</b></p>
        
<div>Number of times to retry signing if server fails to sign</div>
        
<ul>
          
<li><b>Type</b>: <tt>int</tt></li>
          
<li><b>Since</b>: <tt>1.1.0</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="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</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>retryTimer</tt></li>
          
<li><b>Default</b>: <tt>30</tt></li>
        </ul><hr />
<p><b><a name="signerUrl">signerUrl</a>:</b></p>
        
<div>The signing service URL for signing Jar files 

<p>This service should return a signed jar file.</p>

<p>The Official Eclipse signer service URL as described in the <a class="externalLink" href="http://wiki.eclipse.org/IT_Infrastructure_Doc#Sign_my_plugins.2FZIP_files.3F">wiki</a>.</p>

<p style="font-weight: bold">Configuration via Maven
commandline</p>

<div>
<pre>
-Dcbi.jarsigner.signerUrl=http://localhost/sign.php
</pre></div>


<p style="font-weight: bold">Configuration via pom.xml</p>

<div>
<pre>
<tt>
&lt;configuration&gt;
  &lt;signerUrl&gt;http://localhost/sign&lt;/signerUrl&gt;
&lt;/configuration&gt;
</tt>
</pre></div></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>Skips the execution of this plugin</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>Project types which this plugin supports 

<p style="font-weight: bold">Default Types Supported</p>

<div>
<pre>
jar                 : standard jars
bundle              : felix/bnd bundles
maven-plugin        : maven plugins
eclipse-plugin      : Tycho eclipse-plugin
eclipse-test-plugin : Tycho eclipse-test-plugin
eclipse-feature     : Tycho eclipse-feature
</pre></div></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 span12">Copyright &copy;                    2014
                        <a href="http://eclipse.org/">Eclipse Foundation</a>.
            All Rights Reserved.      
                    
      </div>

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