<!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 Mac Signing Maven Plugin - 
    eclipse-macsigner: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-macsigner:sign<a name="eclipse-macsigner:sign"></a></h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.cbi.maven.plugins:eclipse-macsigner-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
macsigner webservice</a>.</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 Mac binaries 

<p>The signing service should return a signed zip file. Containing
the Mac *.app directory.</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.macsigner.signerUrl=http://localhost/macsign.php
</pre></div>


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

<div>
<pre>
<tt>
&lt;configuration&gt;
  &lt;signerUrl&gt;http://localhost/macsign&lt;/signerUrl&gt;
&lt;/configuration&gt;
</tt>
</pre></div><br /><b>Default value is</b>: <tt>http://build.eclipse.org:31338/macsign.php</tt>.<br /><b>User property is</b>: <tt>cbi.macsigner.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="#baseSearchDir">baseSearchDir</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>1.0.4</tt></td>
            
<td>The base directory to search for executables to sign 

<p>If NOT configured baseSearchDir is
${project.build.directory}/products/</p><br /><b>Default value is</b>: <tt>${project.build.directory}/products/</tt>.<br /><b>User property is</b>: <tt>baseSearchDir</tt>.</td>
          </tr>
          
<tr class="a">
            
<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="b">
            
<td><b><a href="#fileNames">fileNames</a></b></td>
            
<td><tt>String[]</tt></td>
            
<td><tt>1.0.4</tt></td>
            
<td>A list of *.app filenames to sign 

<p>If NOT configured 'Eclipse.app' is signed.</p><br /><b>User property is</b>: <tt>fileNames</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</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="b">
            
<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="a">
            
<td><b><a href="#signFiles">signFiles</a></b></td>
            
<td><tt>String[]</tt></td>
            
<td><tt>1.0.4</tt></td>
            
<td>A list of full paths to the Mac directory *.app 

<p>If configured only these executables will be signed.</p>

<p style="font-style: italic; font-weight: bold">NOTE: If this is
configured &quot;baseSearchDir&quot; and &quot;fileNames&quot; do NOT need to be
configured.</p>

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

<div>
<pre>
<tt>
&lt;configuration&gt;
  &lt;signFiles&gt;
    &lt;signFile&gt;</tt>${project.build.directory}/products/org.eclipse.sdk.ide/macosx/cocoa/x86/eclipse/Eclipse.app<tt>
&lt;/signFile&gt;
    &lt;signFile&gt;</tt>${project.build.directory}/products/org.eclipse.sdk.ide/macosx/cocoa/x86_64/eclipse/Eclipse.app<tt>
&lt;/signFile&gt;
  &lt;/signFiles&gt;
&lt;/configuration&gt;
</tt>
</pre></div><br /><b>User property is</b>: <tt>signFiles</tt>.</td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3>Parameter Details<a name="Parameter_Details"></a></h3>
        
<p><b><a name="baseSearchDir">baseSearchDir</a>:</b></p>
        
<div>The base directory to search for executables to sign 

<p>If NOT configured baseSearchDir is
${project.build.directory}/products/</p></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>No</tt></li>
          
<li><b>User Property</b>: <tt>baseSearchDir</tt></li>
          
<li><b>Default</b>: <tt>${project.build.directory}/products/</tt></li>
        </ul><hr />
<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="fileNames">fileNames</a>:</b></p>
        
<div>A list of *.app filenames to sign 

<p>If NOT configured 'Eclipse.app' is signed.</p></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>No</tt></li>
          
<li><b>User Property</b>: <tt>fileNames</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="signFiles">signFiles</a>:</b></p>
        
<div>A list of full paths to the Mac directory *.app 

<p>If configured only these executables will be signed.</p>

<p style="font-style: italic; font-weight: bold">NOTE: If this is
configured &quot;baseSearchDir&quot; and &quot;fileNames&quot; do NOT need to be
configured.</p>

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

<div>
<pre>
<tt>
&lt;configuration&gt;
  &lt;signFiles&gt;
    &lt;signFile&gt;</tt>${project.build.directory}/products/org.eclipse.sdk.ide/macosx/cocoa/x86/eclipse/Eclipse.app<tt>
&lt;/signFile&gt;
    &lt;signFile&gt;</tt>${project.build.directory}/products/org.eclipse.sdk.ide/macosx/cocoa/x86_64/eclipse/Eclipse.app<tt>
&lt;/signFile&gt;
  &lt;/signFiles&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>No</tt></li>
          
<li><b>User Property</b>: <tt>signFiles</tt></li>
        </ul><hr />
<p><b><a name="signerUrl">signerUrl</a>:</b></p>
        
<div>The signing service URL for signing Mac binaries 

<p>The signing service should return a signed zip file. Containing
the Mac *.app directory.</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.macsigner.signerUrl=http://localhost/macsign.php
</pre></div>


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

<div>
<pre>
<tt>
&lt;configuration&gt;
  &lt;signerUrl&gt;http://localhost/macsign&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.macsigner.signerUrl</tt></li>
          
<li><b>Default</b>: <tt>http://build.eclipse.org:31338/macsign.php</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>
