<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.7.1 at 2018-09-13 
 | Rendered using Apache Maven Fluido Skin 1.6
-->
<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="20180913" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Sling OSGi Feature Maven Plugin &#x2013; slingfeature:attach-features</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.6.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.6.min.js"></script>
      </head>
    <body class="topBarDisabled">
      <div class="container-fluid">
      <div id="banner">
        <div class="pull-left"><div id="bannerLeft"><h2>Apache Sling OSGi Feature Maven 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-09-13<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 0.2.0-SNAPSHOT</li>
        </ul>
      </div>
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div class="well sidebar-nav">
<ul class="nav nav-list">
          <li class="nav-header">Overview</li>
    <li><a href="index.html" title="Introduction"><span class="none"></span>Introduction</a>  </li>
    <li><a href="plugin-info.html" title="Goals"><span class="none"></span>Goals</a>  </li>
          <li class="nav-header">Project Documentation</li>
    <li><a href="project-info.html" title="Project Information"><span class="icon-chevron-right"></span>Project Information</a>  </li>
    <li><a href="project-reports.html" title="Project Reports"><span class="icon-chevron-right"></span>Project Reports</a>  </li>
  </ul>
          <hr />
          <div id="poweredBy">
              <div class="clear"></div>
              <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="span10" >

  
    <div class="section">
<h2><a name="slingfeature:attach-features"></a>slingfeature:attach-features</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.apache.sling:slingfeature-maven-plugin:0.2.0-SNAPSHOT:attach-features</p>
      
<p><b>Description</b>:</p>
      
<div>Attach the feature as a project artifact.</div>
      
<p><b>Attributes</b>:</p>
      
<ul>
        
<li>Requires a Maven project to be executed.</li>
        
<li>Requires dependency resolution of artifacts in scope: <tt>test</tt>.</li>
        
<li>The goal is thread-safe and supports parallel builds.</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><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="#feature">feature</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Inlined model. This parameter is evaluated in the
<tt>DependencyLifecycleParticipant</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#featureFile">featureFile</a></b></td>
            
<td><tt>File</tt></td>
            
<td><tt>-</tt></td>
            
<td>The feature file.. This parameter is evaluated in the
<tt>DependencyLifecycleParticipant</tt>.<br /><b>Default value is</b>: <tt>${basedir}/src/main/osgi/feature.json</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#jarStartLevel">jarStartLevel</a></b></td>
            
<td><tt>int</tt></td>
            
<td><tt>-</tt></td>
            
<td>The start level for the attached jar/bundle. This parameter is
evaluated in the <tt>DependencyLifecycleParticipant</tt>.<br /><b>Default value is</b>: <tt>20</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#skipAddFeatureDependencies">skipAddFeatureDependencies</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>If set to <tt>true</tt> the artifacts from the feature are not
as dependencies to the project. This parameter is evaluated in the
<tt>DependencyLifecycleParticipant</tt>.<br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#skipAddJarToFeature">skipAddJarToFeature</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>If set to <tt>true</tt> the main jar artifact is not added to
the feature. This parameter is evaluated in the
<tt>DependencyLifecycleParticipant</tt>.<br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#skipAddJarToTestFeature">skipAddJarToTestFeature</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>If set to <tt>true</tt> the main jar artifact is not added to
the test feature. This parameter is evaluated in the
<tt>DependencyLifecycleParticipant</tt>.<br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#skipAddTestFeatureDependencies">skipAddTestFeatureDependencies</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>If set to <tt>true</tt> the artifacts from the test feature are
not as dependencies to the project. This parameter is evaluated in
the <tt>DependencyLifecycleParticipant</tt>.<br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#testFeature">testFeature</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Inlined test model. This parameter is evaluated in the
<tt>DependencyLifecycleParticipant</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#testFeatureFile">testFeatureFile</a></b></td>
            
<td><tt>File</tt></td>
            
<td><tt>-</tt></td>
            
<td>The test feature file.. This parameter is evaluated in the
<tt>DependencyLifecycleParticipant</tt>.<br /><b>Default value is</b>: <tt>${basedir}/src/test/osgi/feature.json</tt>.<br /></td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        
<p><b><a name="feature">feature</a>:</b></p>
        
<div>Inlined model. This parameter is evaluated in the
<tt>DependencyLifecycleParticipant</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="featureFile">featureFile</a>:</b></p>
        
<div>The feature file.. This parameter is evaluated in the
<tt>DependencyLifecycleParticipant</tt>.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.io.File</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>${basedir}/src/main/osgi/feature.json</tt></li>
        </ul><hr />
<p><b><a name="jarStartLevel">jarStartLevel</a>:</b></p>
        
<div>The start level for the attached jar/bundle. This parameter is
evaluated in the <tt>DependencyLifecycleParticipant</tt>.</div>
        
<ul>
          
<li><b>Type</b>: <tt>int</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>20</tt></li>
        </ul><hr />
<p><b><a name="skipAddFeatureDependencies">skipAddFeatureDependencies</a>:</b></p>
        
<div>If set to <tt>true</tt> the artifacts from the feature are not
as dependencies to the project. This parameter is evaluated in the
<tt>DependencyLifecycleParticipant</tt>.</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><hr />
<p><b><a name="skipAddJarToFeature">skipAddJarToFeature</a>:</b></p>
        
<div>If set to <tt>true</tt> the main jar artifact is not added to
the feature. This parameter is evaluated in the
<tt>DependencyLifecycleParticipant</tt>.</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><hr />
<p><b><a name="skipAddJarToTestFeature">skipAddJarToTestFeature</a>:</b></p>
        
<div>If set to <tt>true</tt> the main jar artifact is not added to
the test feature. This parameter is evaluated in the
<tt>DependencyLifecycleParticipant</tt>.</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><hr />
<p><b><a name="skipAddTestFeatureDependencies">skipAddTestFeatureDependencies</a>:</b></p>
        
<div>If set to <tt>true</tt> the artifacts from the test feature are
not as dependencies to the project. This parameter is evaluated in
the <tt>DependencyLifecycleParticipant</tt>.</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="testFeature">testFeature</a>:</b></p>
        
<div>Inlined test model. This parameter is evaluated in the
<tt>DependencyLifecycleParticipant</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="testFeatureFile">testFeatureFile</a>:</b></p>
        
<div>The test feature file.. This parameter is evaluated in the
<tt>DependencyLifecycleParticipant</tt>.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.io.File</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>${basedir}/src/test/osgi/feature.json</tt></li>
        </ul>
      </div>
    </div>
  

        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &copy;2007&#x2013;2018
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
        </div>
        </div>
    </footer>
    </body>
</html>
