<!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 Plugins - Dependency Information</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>Dependency Information<a name="Dependency_Information"></a></h2><a name="Dependency_Information"></a>
<div class="section">
<h3>Apache Maven<a name="Apache_Maven"></a></h3><a name="Apache_Maven"></a>
<div class="source">
<pre>&lt;dependency&gt;
  &lt;groupId&gt;org.eclipse.cbi.maven.plugins&lt;/groupId&gt;
  &lt;artifactId&gt;eclipse-cbi-parent&lt;/artifactId&gt;
  &lt;version&gt;1.1.0&lt;/version&gt;
  &lt;type&gt;pom&lt;/type&gt;
&lt;/dependency&gt;</pre></div></div>
<div class="section">
<h3>Apache Buildr<a name="Apache_Buildr"></a></h3><a name="Apache_Buildr"></a>
<div class="source">
<pre>'org.eclipse.cbi.maven.plugins:eclipse-cbi-parent:pom:1.1.0'</pre></div></div>
<div class="section">
<h3>Apache Ant<a name="Apache_Ant"></a></h3><a name="Apache_Ant"></a>
<div class="source">
<pre>&lt;dependency org=&quot;org.eclipse.cbi.maven.plugins&quot; name=&quot;eclipse-cbi-parent&quot; rev=&quot;1.1.0&quot;&gt;
  &lt;artifact name=&quot;eclipse-cbi-parent&quot; type=&quot;pom&quot; /&gt;
&lt;/dependency&gt;</pre></div></div>
<div class="section">
<h3>Groovy Grape<a name="Groovy_Grape"></a></h3><a name="Groovy_Grape"></a>
<div class="source">
<pre>@Grapes(
@Grab(group='org.eclipse.cbi.maven.plugins', module='eclipse-cbi-parent', version='1.1.0')
)</pre></div></div>
<div class="section">
<h3>Grails<a name="Grails"></a></h3><a name="Grails"></a>
<div class="source">
<pre>compile 'org.eclipse.cbi.maven.plugins:eclipse-cbi-parent:1.1.0'</pre></div></div>
<div class="section">
<h3>Leiningen<a name="Leiningen"></a></h3><a name="Leiningen"></a>
<div class="source">
<pre>[org.eclipse.cbi.maven.plugins/eclipse-cbi-parent &quot;1.1.0&quot;]</pre></div></div>
<div class="section">
<h3>SBT<a name="SBT"></a></h3><a name="SBT"></a>
<div class="source">
<pre>libraryDependencies += &quot;org.eclipse.cbi.maven.plugins&quot; %% &quot;eclipse-cbi-parent&quot; % &quot;1.1.0&quot;</pre></div></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>
