<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 2015-06-08
 | 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="20150608" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Source Feature Generation Plugin (Incubation) - 
    tycho-source-feature:source-feature</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>Source Feature Generation Plugin (Incubation)</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: 2015-06-08</li>
                  <li class="divider">|</li> <li id="projectVersion">Version: 0.23.0</li>
                      
                
                    
      
                                              
    <li class="pull-right">              <a href="http://wiki.eclipse.org/Development_Resources/HOWTO/Incubation_Phase#.281.29_What_Is_Incubation.3F" class="externalLink" title="This content is PRELIMINARY API and still subject to change">
        This content is PRELIMINARY API and still subject to change</a>
  </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 Extras</li>
                                
      <li>
    
                          <a href="../index.html" title="Introduction">
          <i class="none"></i>
        Introduction</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-p2-extras-plugin/plugin-info.html" title="P2 Extras Plugin">
          <i class="none"></i>
        P2 Extras Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../target-platform-validation-plugin/plugin-info.html" title="Target Platform Validation Plugin">
          <i class="none"></i>
        Target Platform Validation Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-eclipserun-plugin/plugin-info.html" title="Eclipserun Plugin">
          <i class="none"></i>
        Eclipserun Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-document-bundle-plugin/plugin-info.html" title="Document Bundle Plugin">
          <i class="none"></i>
        Document Bundle Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-source-feature-plugin/plugin-info.html" title="Source Feature Generation Plugin">
          <i class="none"></i>
        Source Feature Generation Plugin</a>
            </li>
                                                                                
      <li>
    
                          <a href="../tycho-pack200/index.html" title="Pack200 Plugins">
          <i class="icon-chevron-down"></i>
        Pack200 Plugins</a>
                    <ul class="nav nav-list">
                      
      <li>
    
                          <a href="../tycho-pack200/tycho-pack200a-plugin/plugin-info.html" title="Normalization Plugin">
          <i class="none"></i>
        Normalization Plugin</a>
            </li>
                      
      <li>
    
                          <a href="../tycho-pack200/tycho-pack200b-plugin/plugin-info.html" title="Pack Plugin">
          <i class="none"></i>
        Pack Plugin</a>
            </li>
              </ul>
        </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>tycho-source-feature:source-feature<a name="tycho-source-feature:source-feature"></a></h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.tycho.extras:tycho-source-feature-plugin:0.23.0:source-feature</p>
      
<p><b>Description</b>:</p>
      
<div>Generates a source feature for projects of packaging type
<tt>eclipse-feature</tt>. By default, the generated source
feature 

<ul>

<li>Declares feature id
<tt>&lt;originalFeatureId&gt;.source</tt></li>

<li>Declares feature label <tt>&quot;&lt;originalFeatureLabel&gt;
Developer Resources&quot;</tt></li>

<li>If present, reuses feature provider, description, copyright and
license as well as respective URLs from
&lt;originalFeature&gt;</li>

<li>Includes all plugins included by &lt;originalFeature&gt;, but
each with <tt>.source</tt> appended to each plugin id</li>

<li>Includes all features included by &lt;originalFeature&gt;, but
each with <tt>.source</tt> appended to each feature id</li>

<li>Includes the original feature. This ensures that binaries and
corresponding sources match.</li>
</ul>
Source feature generation can be customized by adding files under
path <tt>sourceTemplateFeature/</tt>. Files added here will be
added to the root of the source feature jar. Especially, if file
<tt>sourceTemplateFeature/feature.properties</tt> is found,
values in this file override values of respective keys in
<tt>&lt;originalFeature&gt;/feature.properties</tt>.</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>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="#archive">archive</a></b></td>
            
<td><tt>MavenArchiveConfiguration</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#brandingPlugin">brandingPlugin</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Use this to explicitly set the <a class="externalLink" href="http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.pde.doc.user%2Fguide%2Ftools%2Feditors%2Ffeature_editor%2Ffeature_editor.htm">branding
plugin attribute</a> of the generated source feature (overrides
<tt>reuseBrandingPlugin</tt>).<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#excludes">excludes</a></b></td>
            
<td><tt>PlexusConfiguration</tt></td>
            
<td><tt>-</tt></td>
            
<td>Bundles and features that do not have corresponding sources.
Example: 

<div>
<pre>
&lt;excludes&gt;
  &lt;plugin id=&quot;plugin.nosource&quot;/&gt;
  &lt;feature id=&quot;feature.nosource&quot;/&gt;
&lt;/excludes&gt;
</pre></div><br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#finalName">finalName</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>The filename to be used for the generated archive file. For the
source-feature goal, &quot;-sources-feature&quot; is appended to this
filename.<br /><b>User property is</b>: <tt>project.build.finalName</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#includeBinaryFeature">includeBinaryFeature</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether to add an include dependency from the source feature to the
corresponding binary feature. If <tt>true</tt>, this ensures
the version of the installed sources matches the binaries.<br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#labelSuffix">labelSuffix</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Source feature label suffix. Unless explicitly provided in
<tt>sourceTemplateFeature/feature.properties</tt>, this suffix
will be appended to the original feature label to construct the
source feature label.<br /><b>Default value is</b>: <tt> Developer Resources</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#plugins">plugins</a></b></td>
            
<td><tt>PlexusConfiguration</tt></td>
            
<td><tt>-</tt></td>
            
<td>Additional plugins to include in the generated source feature.
Beware that these additional plugins are not considered during
build target platform calculation and ordering of reactor projects.
Use &lt;extraRequirements&gt; dependency resolver configuration to
guarantee proper reactor build order. 

<p><b>WARNING</b> This experimental parameter may be
removed from future source-feature mojo versions without prior
notice.</p><br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#reuseBrandingPlugin">reuseBrandingPlugin</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether to reuse an explicit branding plugin from the binary
feature for the generated source feature.<br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#skip">skip</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether to skip source feature generation.<br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3>Parameter Details<a name="Parameter_Details"></a></h3>
        
<p><b><a name="archive">archive</a>:</b></p>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <tt>org.apache.maven.archiver.MavenArchiveConfiguration</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="brandingPlugin">brandingPlugin</a>:</b></p>
        
<div>Use this to explicitly set the <a class="externalLink" href="http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.pde.doc.user%2Fguide%2Ftools%2Feditors%2Ffeature_editor%2Ffeature_editor.htm">branding
plugin attribute</a> of the generated source feature (overrides
<tt>reuseBrandingPlugin</tt>).</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="excludes">excludes</a>:</b></p>
        
<div>Bundles and features that do not have corresponding sources.
Example: 

<div>
<pre>
&lt;excludes&gt;
  &lt;plugin id=&quot;plugin.nosource&quot;/&gt;
  &lt;feature id=&quot;feature.nosource&quot;/&gt;
&lt;/excludes&gt;
</pre></div></div>
        
<ul>
          
<li><b>Type</b>: <tt>org.codehaus.plexus.configuration.PlexusConfiguration</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-feature goal, &quot;-sources-feature&quot; is appended to this
filename.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</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="includeBinaryFeature">includeBinaryFeature</a>:</b></p>
        
<div>Whether to add an include dependency from the source feature to the
corresponding binary feature. If <tt>true</tt>, this ensures
the version of the installed sources matches the binaries.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>true</tt></li>
        </ul><hr />
<p><b><a name="labelSuffix">labelSuffix</a>:</b></p>
        
<div>Source feature label suffix. Unless explicitly provided in
<tt>sourceTemplateFeature/feature.properties</tt>, this suffix
will be appended to the original feature label to construct the
source feature label.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt> Developer Resources</tt></li>
        </ul><hr />
<p><b><a name="plugins">plugins</a>:</b></p>
        
<div>Additional plugins to include in the generated source feature.
Beware that these additional plugins are not considered during
build target platform calculation and ordering of reactor projects.
Use &lt;extraRequirements&gt; dependency resolver configuration to
guarantee proper reactor build order. 

<p><b>WARNING</b> This experimental parameter may be
removed from future source-feature mojo versions without prior
notice.</p></div>
        
<ul>
          
<li><b>Type</b>: <tt>org.codehaus.plexus.configuration.PlexusConfiguration</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="reuseBrandingPlugin">reuseBrandingPlugin</a>:</b></p>
        
<div>Whether to reuse an explicit branding plugin from the binary
feature for the generated source feature.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>true</tt></li>
        </ul><hr />
<p><b><a name="skip">skip</a>:</b></p>
        
<div>Whether to skip source feature generation.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul>
      </div>
    </div>
  

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

    <hr/>

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

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