<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    
    <meta name="author" content="Mikaël Barbero">
    
    <meta name="keywords" content="" />
    <meta name="generator" content="Hugo 0.14" />
    <link href="//fonts.googleapis.com/css?family=Open+Sans:400,700,300,600,100" rel="stylesheet" type="text/css">
    <link rel="shortcut icon" href="https://www.eclipse.org/cbi/public/images/favicon.ico"/>
    <title>Common Build Infrastructure</title>
    <meta property="og:title" content="" />
    <meta property="og:description" content="Common Build Infrastructure Website" />
    <meta property="og:image" content="https://www.eclipse.org/cbi/images/logo/eclipse.png" />
    <link rel="stylesheet" href="https://www.eclipse.org/cbi/public/css/solstice.css">
    <link href="https://www.eclipse.org/cbi//css/prism.css" rel="stylesheet" />
    
    
  </head>
  <body class="" id="body_solstice">
    <a class="sr-only" href="#content">Skip to main content</a>
    <div id="toolbar-container-wrapper" class="clearfix">
      <div class="container">
        <div id="row-toolbar" class="region region-toolbar text-right hidden-print">
          <div id="row-toolbar-col" class="col-md-24">
            <section id="block-solstice-support-solstice-support-toolbar" class="block block-solstice-support clearfix">
              <div class="block-content"><ul class="list-inline"><li>&nbsp;</li></ul></div>
            </section>
          </div>
        </div>
      </div>
    </div>
    <header role="banner">
      <div class="container">
        <div id="row-logo-search">
          <div id="header-left" class="col-sm-14 col-md-16 col-lg-19">
            <div class="row">
              <div class="hidden-xs">
                <a href="https://eclipse.org/"><img src="https://www.eclipse.org/cbi/public/images/logo/eclipse-800x188.png" alt="Eclipse.org logo" class="logo-eclipse-default"/></a>
              </div>
              <div id="main-menu" class="navbar row yamm">
                <div id="navbar-collapse-1" class="navbar-collapse collapse">
                  <ul class="nav navbar-nav">
                    

<li class="dropdown">
  <a data-toggle="dropdown" class="dropdown-toggle">More<b class="caret"></b></a>
  <ul class="dropdown-menu">
    <li>
      
      <div class="yamm-content">
        <div class="row">
          <ul class="col-sm-8 list-unstyled">
            <li>
              <p><strong>Community</strong></p>
            </li>
            <li><a href="http://marketplace.eclipse.org">Marketplace</a></li>
            <li><a href="http://events.eclipse.org">Events</a></li>
            <li><a href="http://www.planeteclipse.org/">Planet Eclipse</a></li>
            <li><a href="https://eclipse.org/community/eclipse_newsletter/">Newsletter</a></li>
            <li><a href="https://www.youtube.com/user/EclipseFdn">Videos</a></li>
          </ul>
          <ul class="col-sm-8 list-unstyled">
            <li>
              <p><strong>Participate</strong></p>
            </li>
            <li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
            <li><a href="https://eclipse.org/forums/">Forums</a></li>
            <li><a href="https://eclipse.org/mail/">Mailing Lists</a></li>
            <li><a href="https://wiki.eclipse.org/">Wiki</a></li>
            <li><a href="https://wiki.eclipse.org/IRC">IRC</a></li>
            <li><a href="https://eclipse.org/contribute/">How to Contribute</a></li>
          </ul>
          <ul class="col-sm-8 list-unstyled">
            <li>
              <p><strong>Working Groups</strong></p>
            </li>
            <li><a href="http://wiki.eclipse.org/Auto_IWG">Automotive</a></li>
            <li><a href="http://iot.eclipse.org">Internet of Things</a></li>
            <li><a href="http://locationtech.org">LocationTech</a></li>
            <li><a href="http://lts.eclipse.org">Long-Term Support</a></li>
            <li><a href="http://polarsys.org">PolarSys</a></li>
            <li><a href="http://science.eclipse.org">Science</a></li>
            <li><a href="http://www.openmdm.org">OpenMDM</a></li>
          </ul>
        </div>
      </div>
    </li>
  </ul>
</li>


                  </ul>
                </div>
                <div class="navbar-header">
                  <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse-1">
                  <span class="sr-only">Toggle navigation</span>
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
                  </button>
                  <a href="https://eclipse.org/" class="navbar-brand visible-xs"><img src="https://www.eclipse.org/cbi//public/images/logo/eclipse-800x188.png" alt="Eclipse.org logo" width="174" class="logo-eclipse-default"/></a>
                </div>
              </div>
            </div>
          </div>
          <div id="header-right" class="form-inline col-sm-10 col-md-8 col-lg-5 hidden-print hidden-xs">
            <div id="header-right-container">
              <div id="custom-search-form" class="reset-box-sizing">
  <script>
    (function() {
      var cx = '011805775785170369411:15ipmpflp-0';
      var gcse = document.createElement('script');
      gcse.type = 'text/javascript';
      gcse.async = true;
      gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
          '//cse.google.com/cse.js?cx=' + cx;
      var s = document.getElementsByTagName('script')[0];
      s.parentNode.insertBefore(gcse, s);
    })();
  </script>
  <gcse:searchbox-only></gcse:searchbox-only>
</div>

              
            </div>
          </div>
        </div>
      </div>
    </header>
    <section id="breadcrumb" class="defaut-breadcrumbs hidden-print">
  <div class="container">
    <h3 class="sr-only">Breadcrumbs</h3>
    <div class="col-xs-24">
      
      
      <ol class="breadcrumb">
        <li><a href="https://www.eclipse.org/">Home</a></li>
        <li><a href="https://www.eclipse.org/cbi/">Common Build Infrastructure</a></li>
        
        
        
        
      </ol>
    </div>
  </div>
</section>

    <main role="main" class=" no-promo">
    <div class="container background-image-none" id="novaContent">
    

<div class="container">
  <h1>Common Build Infrastructure</h1>
  
    
  
    
        

<p>The Eclipse Common Build Infrastructure (CBI) is an initiative combining technologies and practices for building Eclipse Software.</p>

<h2 id="what-is-cbi:d680e8a854a7cbad6d490c445cba2eba">What is CBI</h2>

<p>The core of CBI today is Maven with the Tycho plugins. The Tycho plugins teach Maven how to build (and consume) Eclipse plugins and OSGi bundles. This enables building Eclipse projects with &ldquo;maven clean install&rdquo; just as one would build other Maven projects.</p>

<p>Common services such as the Jar signing facility, MacOS signing facility, and Windows signing facility are also included with CBI. Other tools and services may be included in the future as the need arises.</p>

<p>Over time mature templates and common pom.xml files will be provided that set common values finely honed with experience.</p>

<p>One might go so far as to include Git, Hudson, the build slaves, and Nexus (aka. the artifact repository &amp; server side of Maven) as part of CBI since they are also common and crucial to builds.</p>

<p>Gerrit, Bugzilla, and the Downloads site are closely related. Some might consider them part of CBI as well.</p>

<h3 id="who-is-using-it:d680e8a854a7cbad6d490c445cba2eba">Who is using it?</h3>

<p>There&rsquo;s a <a href="http://wiki.eclipse.org/CBI/Projects">list of projects</a> building with CBI available.</p>

<p>The Eclipse Foundation would like to have more than 50% of projects building with CBI by end of 2013.</p>

<h2 id="initiative-goals:d680e8a854a7cbad6d490c445cba2eba">Initiative Goals</h2>

<h3 id="primary:d680e8a854a7cbad6d490c445cba2eba">Primary</h3>

<ul>
<li>Make it really easy to contribute Eclipse projects</li>
<li>Make it really easy to copy &amp; modify source</li>
<li>Make it really easy to build</li>
<li>Make it really easy to test</li>
<li>Make it really easy to post a change for review</li>
<li>Make it really easy to sign software</li>
</ul>

<h3 id="secondary:d680e8a854a7cbad6d490c445cba2eba">Secondary</h3>

<ul>
<li>Get all Eclipse projects building their software on Eclipse Foundation hardware.</li>
<li>Enable the <a href="http://wiki.eclipse.org/EclipseLTS">Long Term Support Program</a>.</li>
<li>Make it easy for people to build custom Eclipse distributions.</li>
</ul>

<p>There is a strong link between CBI and the <a href="http://wiki.eclipse.org/EclipseLTS">Long Term Support Program</a> which enables a marketplace of companies providing maintenance and support for Eclipse technologies for durations far beyond typical community support.</p>

<p>Please note: CBI features will be available to community.</p>

<p>It is our hope that this project develops an offering that is compelling so that many projects will move to use it.</p>

<h2 id="resources:d680e8a854a7cbad6d490c445cba2eba">Resources</h2>

<ul>
<li>Mailing list <a href="https://dev.eclipse.org/mailman/listinfo/cbi-dev">cbi-dev</a></li>
</ul>

<h3 id="bugs:d680e8a854a7cbad6d490c445cba2eba">Bugs</h3>

<p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?action=wrap&amp;product=CBI&amp;list_id=38248">List of All Bugs</a></p>

<h2 id="tutorials-news-and-other-resources:d680e8a854a7cbad6d490c445cba2eba">Tutorials, News, and other resources</h2>

<ul>
<li><a href="http://www.vogella.com/articles/EclipseTycho/article.html">Tycho tutorial by Lars Vogel</a></li>
<li><a href="http://www.fosslc.org/drupal/content/tycho-good-bad-and-ugly">Video discussing JBoss tools use of Tycho</a></li>
<li><a href="http://www.vogella.com/blog/2012/10/08/building-eclipse-sdk-locally-with-maven/">Building Eclipse SDK locally with Maven</a></li>
<li><a href="http://mickaelistria.wordpress.com/2012/10/08/sonar-at-eclipse-org/">Sonar at Eclipse.org</a></li>
<li><a href="http://youtu.be/KJUfLvXiTSw">Tycho and CBI Adoption: Feedback from the trenches</a></li>
<li><a href="http://www.bsiag.com/scout/?p=678">Eclipse Scout builds with CBI</a></li>
</ul>

<h2 id="eclipse-platform-cbi-build:d680e8a854a7cbad6d490c445cba2eba">Eclipse platform CBI build</h2>

<ul>
<li><a href="http://wiki.eclipse.org/Platform-releng/Platform_Build">Eclipse Platform Build based on CBI</a> see the <a href="http://wiki.eclipse.org/CBI/Eclipse">Platform Build Roadmap</a></li>
</ul>

<h2 id="preferred-build-technologies:d680e8a854a7cbad6d490c445cba2eba">Preferred Build Technologies</h2>

<h3 id="hudson:d680e8a854a7cbad6d490c445cba2eba">Hudson</h3>

<ul>
<li>The Eclipse <a href="http://hudson.eclipse.org">Hudson instances</a>; and</li>
</ul>

<h3 id="maven:d680e8a854a7cbad6d490c445cba2eba">Maven</h3>

<p>Maven 3.0 drives the builds. Projects are expected to provide standard Maven 3.0 POM files for their builds. The builds should be built in such a way that they can be run on the local workstation, or on the Eclipse build server. Note that builds can only be signed on the Eclipse build server.</p>

<h3 id="tycho:d680e8a854a7cbad6d490c445cba2eba">Tycho</h3>

<p>Tycho is focused on a Maven-centric, manifest-first approach to building Eclipse plug-ins, features, update sites, RCP applications and OSGi bundles.</p>

<p>Helpful links:</p>

<ul>
<li><a href="http://wiki.eclipse.org/Tycho">Tycho project</a> information, including <a href="http://wiki.eclipse.org/Tycho/Demo">demo projects</a></li>
<li><a href="http://waynebeaton.wordpress.com/2010/09/23/building-woolsey-with-maven-and-tycho/">Building Woolsey with Maven and Tycho</a></li>
<li><a href="http://wiki.eclipse.org/Tycho/Reference_Card">Reference Card</a></li>
<li><a href="http://wiki.eclipse.org/Tycho/Packaging_Types">Packaging Types</a></li>
</ul>

<h3 id="nexus:d680e8a854a7cbad6d490c445cba2eba">Nexus</h3>

<p><a href="http://wiki.eclipse.org/Services/Nexus">http://wiki.eclipse.org/Services/Nexus</a></p>

<h3 id="signing-tool:d680e8a854a7cbad6d490c445cba2eba">Signing tool</h3>

<ul>
<li><a href="http://git.eclipse.org/c/cbi/org.eclipse.cbi.git/">Maven plugins for signing artifacts</a></li>
<li><a href="http://wiki.eclipse.org/IT_Infrastructure_Doc#Sign_my_plugins.2FZIP_files.3F">On demand signing tool</a></li>
</ul>

<h2 id="cbi-license-bundle:d680e8a854a7cbad6d490c445cba2eba">CBI License bundle</h2>

<p>We offer a P2 repository containing the org.eclipse.license bundle which is located at <code>http://download.eclipse.org/cbi/updates/license/</code></p>

<p>This URL is a composite P2 repo containing the license bundle.</p>

<p>If you are using Tycho you can add the p2 repo to the <repositories> section of your pom.xml file. Something similar to this:</p>

<pre><code class="language-xml,line-numbers">&lt;repository&gt;
  &lt;id&gt;license-feature&lt;/id&gt;
  &lt;url&gt;http://download.eclipse.org/cbi/updates/license/&lt;/url&gt;
  &lt;layout&gt;p2&lt;/layout&gt;
&lt;/repository&gt;
</code></pre>

<p>In any particular feature which you need the license you can use the usual feature.xml section:</p>

<pre><code class="language-xml,line-numbers">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;feature
  id=&quot;org.eclipse.help&quot;
  label=&quot;%featureName&quot;
  version=&quot;2.0.0.qualifier&quot;
  provider-name=&quot;%providerName&quot;
  plugin=&quot;org.eclipse.help.base&quot;
  license-feature=&quot;org.eclipse.license&quot;
  license-feature-version=&quot;1.0.0.qualifier&quot;&gt;
....
</code></pre>

<h2 id="related-topics-and-links:d680e8a854a7cbad6d490c445cba2eba">Related Topics and Links</h2>

<ul>
<li><a href="http://wiki.eclipse.org/EclipseLTS">Long Term Support</a></li>
<li><a href="http://wiki.eclipse.org/Build_Technologies">List of Build Technologies</a></li>
</ul>

<h2 id="faq:d680e8a854a7cbad6d490c445cba2eba">FAQ</h2>

<ul>
<li>See your <a href="http://wiki.eclipse.org/CBI/FAQ">Frequently Asked Question list</a></li>
</ul>

    
  
</div>

</div>
</main>

<p id="back-to-top">
  <a class="visible-xs" href="#top">Back to the top</a>
</p>
<footer role="contentinfo" id="solstice-footer">
  <div class="container">
    <div class="row">
      <section id="footer-eclipse-foundation" class="col-xs-offset-1 col-xs-11 col-sm-7 col-md-6 col-md-offset-0 hidden-print">
        <h2 class="section-title">Eclipse Foundation</h2>
        <ul class="nav">
          <li><a href="https://eclipse.org/org/">About us</a></li>
          <li><a href="https://eclipse.org/org/foundation/contact.php">Contact Us</a></li>
          <li><a href="https://eclipse.org/donate">Donate</a></li>
          <li><a href="https://eclipse.org/org/documents/">Governance</a></li>
          <li><a href="https://eclipse.org/artwork/">Logo and Artwork</a></li>
          <li><a href="https://eclipse.org/org/foundation/directors.php">Board of Directors</a></li>
        </ul>
      </section>
      <section id="footer-legal" class="col-xs-offset-1 col-xs-11 col-sm-7 col-md-6 col-md-offset-0 hidden-print ">
        <h2 class="section-title">Legal</h2>
        <ul class="nav">
          <li><a href="https://eclipse.org/legal/privacy.php">Privacy Policy</a></li>
          <li><a href="https://eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
          <li><a href="https://eclipse.org/legal/copyright.php">Copyright Agent</a></li>
          <li><a href="https://eclipse.org/org/documents/epl-v10.php">Eclipse Public License </a></li>
          <li><a href="https://eclipse.org/legal/">Legal Resources </a></li>
        </ul>
      </section>
      <section id="footer-useful-links" class="col-xs-offset-1 col-xs-11 col-sm-7 col-md-6 col-md-offset-0 hidden-print">
        <h2 class="section-title">Useful Links</h2>
        <ul class="nav">
          <li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
          <li><a href="//help.eclipse.org/">Documentation</a></li>
          <li><a href="https://eclipse.org/contribute/">How to Contribute</a></li>
          <li><a href="https://eclipse.org/mail/">Mailing Lists</a></li>
          <li><a href="https://eclipse.org/forums/">Forums</a></li>
          <li><a href="//marketplace.eclipse.org">Marketplace</a></li>
        </ul>
      </section>
      <section id="footer-other" class="col-xs-offset-1 col-xs-11 col-sm-7 col-md-6 col-md-offset-0 hidden-print">
        <h2 class="section-title">Other</h2>
        <ul class="nav">
          <li><a href="https://eclipse.org/ide/">IDE and Tools</a></li>
          <li><a href="https://eclipse.org/projects">Community of Projects</a></li>
          <li><a href="https://eclipse.org/org/workinggroups/">Working Groups</a></li>
        </ul>
        <ul class="list-inline social-media">
          <li><a href="https://twitter.com/EclipseFdn"><i class="fa fa-twitter-square"></i></a></li>
          <li><a href="https://plus.google.com/+Eclipse"><i class="fa fa-google-plus-square"></i></a></li>
          <li><a href="https://www.facebook.com/eclipse.org"><i class="fa fa-facebook-square"></i> </a></li>
          <li><a href="https://www.youtube.com/user/EclipseFdn"><i class="fa fa-youtube-square"></i></a></li>
        </ul>
      </section>
      <div id="copyright"  class="col-xs-offset-1 col-sm-14 col-md-24 col-md-offset-0">
        <div>
          <span class="hidden-print"><img src="https://www.eclipse.org/cbi/public/images/logo/eclipse-logo-bw-800x188.png" alt="Eclipse.org black and white logo" width="166" height="39" id="logo-eclipse-white"/></span>
          <p id="copyright-text">Copyright &copy; 2015 The Eclipse Foundation. All Rights Reserved.</p>
        </div>
      </div>
      <a href="#" class="scrollup">Back to the top</a>
    </div>
  </div>
</footer>

<script src="https://www.eclipse.org/cbi/public/js/solstice.js"></script>
<script src="https://www.eclipse.org/cbi//js/prism.js"></script>
<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-910670-2']);
  _gaq.push(['_trackPageview']);
  
  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
  
</script>
</body>
</html>

