<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 2018-06-05
 | 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="20180605" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Tycho OSGi Source Plugin &#x2013; tycho-source:plugin-source</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">
                                <div id="bannerLeft">
                <h2>Tycho OSGi Source Plugin</h2>
                </div>
                      </div>
        <div class="pull-right">  </div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
                
                    
                  <li id="publishDate">Last Published: 2018-06-05</li>
                  <li class="divider">|</li> <li id="projectVersion">Version: 1.2.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">Tycho</li>
                                
      <li>
    
                          <a href="../index.html" title="Introduction">
          <i class="none"></i>
        Introduction</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-compiler-plugin/plugin-info.html" title="Compiler Plugin">
          <i class="none"></i>
        Compiler Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-packaging-plugin/plugin-info.html" title="Packaging Plugin">
          <i class="none"></i>
        Packaging Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../BuildProperties.html" title="Build Properties">
          <i class="none"></i>
        Build Properties</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-surefire/tycho-surefire-plugin/plugin-info.html" title="Surefire Plugin">
          <i class="none"></i>
        Surefire Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-p2/tycho-p2-publisher-plugin/plugin-info.html" title="p2 Publisher Plugin">
          <i class="none"></i>
        p2 Publisher Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-p2/tycho-p2-repository-plugin/plugin-info.html" title="p2 Repository Plugin">
          <i class="none"></i>
        p2 Repository Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-p2/tycho-p2-director-plugin/plugin-info.html" title="p2 Director Plugin">
          <i class="none"></i>
        p2 Director Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-source-plugin/plugin-info.html" title="Source Plugin">
          <i class="none"></i>
        Source Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-release/tycho-versions-plugin/plugin-info.html" title="Versions Plugin">
          <i class="none"></i>
        Versions Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-pomgenerator-plugin/plugin-info.html" title="POM Generator Plugin">
          <i class="none"></i>
        POM Generator Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../TychoProperties.html" title="Tycho Properties">
          <i class="none"></i>
        Tycho Properties</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><a name="tycho-source:plugin-source"></a>tycho-source:plugin-source</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.tycho:tycho-source-plugin:1.2.0:plugin-source</p>
      
<p><b>Description</b>:</p>
      
<div>Goal to create a JAR-package containing all the source files of a
osgi project.</div>
      
<p><b>Attributes</b>:</p>
      
<ul>
        
<li>Requires a Maven project to be executed.</li>
        
<li>Since version: <tt>2.0.3</tt>.</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>prepare-package</tt>.</li>
      </ul>
      
<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="#additionalFileSets">additionalFileSets</a></b></td>
            
<td><tt>DefaultFileSet[]</tt></td>
            
<td><tt>2.0.3</tt></td>
            
<td>Additional files to be included in the source bundle jar. This can
be used when <tt>src.includes</tt> in build.properties is not
flexible enough , e.g. for files which would otherwise conflict
with files in <tt>bin.includes</tt><br />
Example:<br />
 

<div>
<pre>
&lt;additionalFileSets&gt;
 &lt;fileSet&gt;
  &lt;directory&gt;${project.basedir}/sourceIncludes/&lt;/directory&gt;
  &lt;includes&gt;
   &lt;include&gt;**/*&lt;/include&gt;
  &lt;/includes&gt;
 &lt;/fileSet&gt;     
&lt;/additionalFileSets&gt;
</pre></div><br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#archive">archive</a></b></td>
            
<td><tt>MavenArchiveConfiguration</tt></td>
            
<td><tt>2.1</tt></td>
            
<td>The archive configuration to use. See <a class="externalLink" href="http://maven.apache.org/shared/maven-archiver/index.html">Maven
Archiver Reference</a>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#attach">attach</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>2.0.3</tt></td>
            
<td>Specifies whether or not to attach the artifact to the project<br /><b>Default value is</b>: <tt>true</tt>.<br /><b>User property is</b>: <tt>attach</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#classifier">classifier</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>2.0.3</tt></td>
            
<td>The source bundles classifier. The name of the source bundle will
be <tt>finalName- classifier.jar</tt><br /><b>Default value is</b>: <tt>sources</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#distinctSourceRoots">distinctSourceRoots</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>2.0.3</tt></td>
            
<td>Whether sources for nested jars should be put into distinct source
root folders inside the source jar (one source root per nested
jar). E.g. if this paramater is <tt>true</tt> and there is a
nested jar named <tt>foo.jar</tt>, all of its sources will go
into folder <tt>foosrc/</tt>. Otherwise all sources for all
jars, nested or not, will go into the root of the source jar (this
is the default as it provides interoperability with maven source
jars).<br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#excludeResources">excludeResources</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>2.0.4</tt></td>
            
<td>Specifies whether or not to exclude resources from the sources-jar.
This can be convenient if your project includes large resources,
such as images, and you don't want to include them in the
sources-jar.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>source.excludeResources</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#excludes">excludes</a></b></td>
            
<td><tt>String[]</tt></td>
            
<td><tt>2.1</tt></td>
            
<td>List of files to exclude. Specified as fileset patterns which are
relative to the input directory whose contents is being packaged
into the JAR.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#finalName">finalName</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>2.0.3</tt></td>
            
<td>The filename to be used for the generated archive file. For the
source:jar goal, &quot;-sources&quot; is appended to this filename. For the
source:test-jar goal, &quot;-test-sources&quot; is appended.<br /><b>User property is</b>: <tt>project.build.finalName</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#forceCreation">forceCreation</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>2.1</tt></td>
            
<td>NOT SUPPORTED. Whether creating the archive should be forced. If
set to true, the jar will always be created. If set to false, the
jar will only be created when the sources are newer than the jar.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>source.forceCreation</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#includePom">includePom</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>2.1</tt></td>
            
<td>Specifies whether or not to include the POM file in the
sources-jar.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>source.includePom</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#includes">includes</a></b></td>
            
<td><tt>String[]</tt></td>
            
<td><tt>2.1</tt></td>
            
<td>List of files to include. Specified as fileset patterns which are
relative to the input directory whose contents is being packaged
into the JAR.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#outputDirectory">outputDirectory</a></b></td>
            
<td><tt>File</tt></td>
            
<td><tt>2.0.3</tt></td>
            
<td>The directory where the generated archive file will be put.<br /><b>User property is</b>: <tt>project.build.directory</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#qualifier">qualifier</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>2.0.3</tt></td>
            
<td>Build qualifier. Recommended way to set this parameter is using
build-qualifier goal. Only used when creating a source bundle.<br /><b>User property is</b>: <tt>buildQualifier</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#sourceBundle">sourceBundle</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>2.0.3</tt></td>
            
<td>Whether the source jar should be an Eclipse source bundle.<br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#sourceBundleSuffix">sourceBundleSuffix</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>2.0.3</tt></td>
            
<td>The suffix to be added to the symbolic name of the bundle to
construct the symbolic name of the Eclipse source bundle.<br /><b>Default value is</b>: <tt>.source</tt>.<br /><b>User property is</b>: <tt>sourceBundleSuffix</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#strictSrcIncludes">strictSrcIncludes</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>2.0.3</tt></td>
            
<td>If set to <tt>true</tt> (the default), missing build.properties
src.includes will cause build failure. If set to
<tt>false</tt>, missing build.properties src.includes will be
reported as warnings but the build will not fail.<br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#useDefaultExcludes">useDefaultExcludes</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>2.1</tt></td>
            
<td>Exclude commonly excluded files such as SCM configuration. These
are defined in the plexus FileUtils.getDefaultExcludes()<br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#useDefaultManifestFile">useDefaultManifestFile</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>2.1</tt></td>
            
<td>Set this to <tt>true</tt> to enable the use of the
<tt>defaultManifestFile</tt>. <br /><br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#useDefaultSourceExcludes">useDefaultSourceExcludes</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>2.0.3</tt></td>
            
<td>Whether default source excludes for SCM files defined in
AbstractScanner#DEFAULTEXCLUDES should be used.<br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        
<p><b><a name="additionalFileSets">additionalFileSets</a>:</b></p>
        
<div>Additional files to be included in the source bundle jar. This can
be used when <tt>src.includes</tt> in build.properties is not
flexible enough , e.g. for files which would otherwise conflict
with files in <tt>bin.includes</tt><br />
Example:<br />
 

<div>
<pre>
&lt;additionalFileSets&gt;
 &lt;fileSet&gt;
  &lt;directory&gt;${project.basedir}/sourceIncludes/&lt;/directory&gt;
  &lt;includes&gt;
   &lt;include&gt;**/*&lt;/include&gt;
  &lt;/includes&gt;
 &lt;/fileSet&gt;     
&lt;/additionalFileSets&gt;
</pre></div></div>
        
<ul>
          
<li><b>Type</b>: <tt>org.codehaus.plexus.archiver.util.DefaultFileSet[]</tt></li>
          
<li><b>Since</b>: <tt>2.0.3</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="archive">archive</a>:</b></p>
        
<div>The archive configuration to use. See <a class="externalLink" href="http://maven.apache.org/shared/maven-archiver/index.html">Maven
Archiver Reference</a>.</div>
        
<ul>
          
<li><b>Type</b>: <tt>org.apache.maven.archiver.MavenArchiveConfiguration</tt></li>
          
<li><b>Since</b>: <tt>2.1</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="attach">attach</a>:</b></p>
        
<div>Specifies whether or not to attach the artifact to the project</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>2.0.3</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>attach</tt></li>
          
<li><b>Default</b>: <tt>true</tt></li>
        </ul><hr />
<p><b><a name="classifier">classifier</a>:</b></p>
        
<div>The source bundles classifier. The name of the source bundle will
be <tt>finalName- classifier.jar</tt></div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Since</b>: <tt>2.0.3</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>sources</tt></li>
        </ul><hr />
<p><b><a name="distinctSourceRoots">distinctSourceRoots</a>:</b></p>
        
<div>Whether sources for nested jars should be put into distinct source
root folders inside the source jar (one source root per nested
jar). E.g. if this paramater is <tt>true</tt> and there is a
nested jar named <tt>foo.jar</tt>, all of its sources will go
into folder <tt>foosrc/</tt>. Otherwise all sources for all
jars, nested or not, will go into the root of the source jar (this
is the default as it provides interoperability with maven source
jars).</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>2.0.3</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="excludeResources">excludeResources</a>:</b></p>
        
<div>Specifies whether or not to exclude resources from the sources-jar.
This can be convenient if your project includes large resources,
such as images, and you don't want to include them in the
sources-jar.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>2.0.4</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>source.excludeResources</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="excludes">excludes</a>:</b></p>
        
<div>List of files to exclude. Specified as fileset patterns which are
relative to the input directory whose contents is being packaged
into the JAR.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String[]</tt></li>
          
<li><b>Since</b>: <tt>2.1</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="finalName">finalName</a>:</b></p>
        
<div>The filename to be used for the generated archive file. For the
source:jar goal, &quot;-sources&quot; is appended to this filename. For the
source:test-jar goal, &quot;-test-sources&quot; is appended.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Since</b>: <tt>2.0.3</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>project.build.finalName</tt></li>
        </ul><hr />
<p><b><a name="forceCreation">forceCreation</a>:</b></p>
        
<div>NOT SUPPORTED. Whether creating the archive should be forced. If
set to true, the jar will always be created. If set to false, the
jar will only be created when the sources are newer than the jar.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>2.1</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>source.forceCreation</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="includePom">includePom</a>:</b></p>
        
<div>Specifies whether or not to include the POM file in the
sources-jar.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>2.1</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>source.includePom</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="includes">includes</a>:</b></p>
        
<div>List of files to include. Specified as fileset patterns which are
relative to the input directory whose contents is being packaged
into the JAR.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String[]</tt></li>
          
<li><b>Since</b>: <tt>2.1</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="outputDirectory">outputDirectory</a>:</b></p>
        
<div>The directory where the generated archive file will be put.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.io.File</tt></li>
          
<li><b>Since</b>: <tt>2.0.3</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>project.build.directory</tt></li>
        </ul><hr />
<p><b><a name="qualifier">qualifier</a>:</b></p>
        
<div>Build qualifier. Recommended way to set this parameter is using
build-qualifier goal. Only used when creating a source bundle.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Since</b>: <tt>2.0.3</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>buildQualifier</tt></li>
        </ul><hr />
<p><b><a name="sourceBundle">sourceBundle</a>:</b></p>
        
<div>Whether the source jar should be an Eclipse source bundle.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>2.0.3</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>true</tt></li>
        </ul><hr />
<p><b><a name="sourceBundleSuffix">sourceBundleSuffix</a>:</b></p>
        
<div>The suffix to be added to the symbolic name of the bundle to
construct the symbolic name of the Eclipse source bundle.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Since</b>: <tt>2.0.3</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>sourceBundleSuffix</tt></li>
          
<li><b>Default</b>: <tt>.source</tt></li>
        </ul><hr />
<p><b><a name="strictSrcIncludes">strictSrcIncludes</a>:</b></p>
        
<div>If set to <tt>true</tt> (the default), missing build.properties
src.includes will cause build failure. If set to
<tt>false</tt>, missing build.properties src.includes will be
reported as warnings but the build will not fail.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>2.0.3</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>true</tt></li>
        </ul><hr />
<p><b><a name="useDefaultExcludes">useDefaultExcludes</a>:</b></p>
        
<div>Exclude commonly excluded files such as SCM configuration. These
are defined in the plexus FileUtils.getDefaultExcludes()</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>2.1</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>true</tt></li>
        </ul><hr />
<p><b><a name="useDefaultManifestFile">useDefaultManifestFile</a>:</b></p>
        
<div>Set this to <tt>true</tt> to enable the use of the
<tt>defaultManifestFile</tt>. <br /></div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>2.1</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="useDefaultSourceExcludes">useDefaultSourceExcludes</a>:</b></p>
        
<div>Whether default source excludes for SCM files defined in
AbstractScanner#DEFAULTEXCLUDES should be used.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>2.0.3</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>true</tt></li>
        </ul>
      </div>
    </div>
  

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

    <hr/>

    <footer>
            <div class="container-fluid">
              <div class="row span12">Copyright &copy;                    2008-2018
                        <a href="http://www.eclipse.org/">Eclipse Foundation</a>.
            All Rights Reserved.      
                    
      </div>

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