<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 2018-12-17
 | 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="20181217" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Tycho Versions Plugin &#x2013; tycho-versions:set-version</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 Versions 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-12-17</li>
                  <li class="divider">|</li> <li id="projectVersion">Version: 1.3.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-versions:set-version"></a>tycho-versions:set-version</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.tycho:tycho-versions-plugin:1.3.0:set-version</p>
      
<p><b>Description</b>:</p>
      
<div>
<p>Sets the version of the current project and child projects with
the same version, and updates references as necessary.</p>

<p>The set-version goal implements a version refactoring for a
Tycho reactor: When updating the version of a project, it
consistently updates the version strings in the project's
configuration files (e.g. pom.xml and META-INF/MANIFEST.MF) and all
references to that project (e.g. in a feature.xml).</p>

<p>In many cases, the set-version goal changes the version of
multiple projects or entities at once. In addition to the current
project, child projects with the same version are also changed. The
set of version changes is determined according to the following
rules:</p>

<ul>

<li>When the parent project of a project is changed and the project
has the same version as the parent project, the project is also
changed.</li>

<li>When an <tt>eclipse-plugin</tt> project is changed and the
plugin exports a package with a version which is the same as the
unqualified project version, the version of the package is also
changed.</li>

<li>Require-Bundle and Fragment-Host Version Range in references to
an <tt>eclipse-plugin</tt> that changed version will be updated: 

<ul>

<li>if the newVersion becomes out of the original VersionRange</li>

<li>or if <tt>updateVersionRangeMatchingBounds</tt> is true and
one of the bounds is matching the original version</li>
</ul>
</li>

<li>When an <tt>eclipse-repository</tt> project is changed and a
product file in the project has an equivalent version, the version
in the product file is also changed.</li>
</ul></div>
      
<p><b>Attributes</b>:</p>
      
<ul>
        
<li>Requires a Maven project to be executed.</li>
        
<li>Executes as an aggregator plugin.</li>
        
<li>Executes by direct invocation only.</li>
      </ul>
      
<div class="section">
<h3><a name="Required_Parameters"></a>Required 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><tt><a href="#newVersion">&lt;newVersion&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>
<p>The new version to set to the current project and other entities
which have the same version as the current project.</p><br /><b>User property is</b>: <tt>newVersion</tt>.<br /><b>Alias is</b>: <tt>developmentVersion</tt>.</td>
          </tr>
        </table>
      </div>
      
<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><tt><a href="#artifacts">&lt;artifacts&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>
<p>Initial list of of projects to be changed. From these projects,
the full list of projects to be changed is derived according to the
rules described above. If set, this parameter needs to be specified
as a comma separated list of artifactIds.</p><br /><b>Default value is</b>: <tt>${project.artifactId}</tt>.<br /><b>User property is</b>: <tt>artifacts</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#properties">&lt;properties&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>0.18.0</tt></td>
            
<td>
<p>Comma separated list of names of POM properties to set the new
version to. Note that properties are only changed in the projects
explicitly listed by the <tt>artifacts</tt> parameter.</p><br /><b>User property is</b>: <tt>properties</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#updateVersionRangeMatchingBounds">&lt;updateVersionRangeMatchingBounds&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>
<p>When true bounds of OSGI version ranges referencing the version
of an element that changed version will be updated to match the
newVersion.</p><br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>updateVersionRangeMatchingBounds</tt>.<br /></td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        
<div class="section">
<h4><a name="aartifacts"></a><b><a name="artifacts">&lt;artifacts&gt;</a></b></h4>
        
<div>
<p>Initial list of of projects to be changed. From these projects,
the full list of projects to be changed is derived according to the
rules described above. If set, this parameter needs to be specified
as a comma separated list of artifactIds.</p></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>artifacts</tt></li>
          
<li><b>Default</b>: <tt>${project.artifactId}</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="anewVersion"></a><b><a name="newVersion">&lt;newVersion&gt;</a></b></h4>
        
<div>
<p>The new version to set to the current project and other entities
which have the same version as the current project.</p></div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
          
<li><b>User Property</b>: <tt>newVersion</tt></li>
          
<li><b>Alias</b>: <tt>developmentVersion</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="aproperties"></a><b><a name="properties">&lt;properties&gt;</a></b></h4>
        
<div>
<p>Comma separated list of names of POM properties to set the new
version to. Note that properties are only changed in the projects
explicitly listed by the <tt>artifacts</tt> parameter.</p></div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Since</b>: <tt>0.18.0</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>properties</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="aupdateVersionRangeMatchingBounds"></a><b><a name="updateVersionRangeMatchingBounds">&lt;updateVersionRangeMatchingBounds&gt;</a></b></h4>
        
<div>
<p>When true bounds of OSGI version ranges referencing the version
of an element that changed version will be updated to match the
newVersion.</p></div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>updateVersionRangeMatchingBounds</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul>
      </div></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>
