<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8.1 from target/generated-site/xdoc/validate-target-platform-mojo.xml at 2019-04-05
 | Rendered using Apache Maven Fluido Skin 1.7
-->
<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="20190405" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Target Platform Validation Plugin &#x2013; target-platform-validation:validate-target-platform</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.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.7.min.js"></script>
  </head>
  <body class="topBarDisabled">
    <div class="container-fluid">
      <div id="banner">
        <div class="pull-left"><div id="bannerLeft"><h2>Target Platform Validation 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: 2019-04-05<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.4.0</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">Tycho Extras</li>
    <li><a href="../index.html" title="Introduction"><span class="none"></span>Introduction</a></li>
    <li><a href="../tycho-p2-extras-plugin/plugin-info.html" title="P2 Extras Plugin"><span class="none"></span>P2 Extras Plugin</a></li>
    <li><a href="../target-platform-validation-plugin/plugin-info.html" title="Target Platform Validation Plugin"><span class="none"></span>Target Platform Validation Plugin</a></li>
    <li><a href="../tycho-eclipserun-plugin/plugin-info.html" title="Eclipserun Plugin"><span class="none"></span>Eclipserun Plugin</a></li>
    <li><a href="../tycho-document-bundle-plugin/plugin-info.html" title="Document Bundle Plugin"><span class="none"></span>Document Bundle Plugin</a></li>
    <li><a href="../tycho-source-feature-plugin/plugin-info.html" title="Source Feature Generation Plugin"><span class="none"></span>Source Feature Generation Plugin</a></li>
    <li><a href="../tycho-pack200/index.html" title="Pack200 Plugins"><span class="icon-chevron-down"></span>Pack200 Plugins</a>
    <ul class="nav nav-list">
    <li><a href="../tycho-pack200/tycho-pack200a-plugin/plugin-info.html" title="Normalization Plugin"><span class="none"></span>Normalization Plugin</a></li>
    <li><a href="../tycho-pack200/tycho-pack200b-plugin/plugin-info.html" title="Pack Plugin"><span class="none"></span>Pack Plugin</a></li>
    </ul>
</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="target-platform-validation:validate-target-platform"></a>target-platform-validation:validate-target-platform</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.tycho.extras:target-platform-validation-plugin:1.4.0:validate-target-platform</p>
      
<p><b>Description</b>:</p>
      
<div>Validates that specified target platforms (.target files) contents
can be resolved.</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>validate</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><tt><a href="#checkDependencies">&lt;checkDependencies&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>0.21.0</tt></td>
            
<td>Check that, for each artifact from the target file, the
dependencies of the artifact are also contained in the target file.
Also check that there are no conflicting artifacts, i.e. artifact
which could not be installed together. When this check passes, none
of the artifacts should lead to dependency resolution problems when
used in a Tycho project.<br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#checkProvisioning">&lt;checkProvisioning&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>0.26.0</tt></td>
            
<td>Check that the content of the target-platform can be installed
together in a same provisioning operation.<br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#executionEnvironment">&lt;executionEnvironment&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /><b>Default value is</b>: <tt>JavaSE-1.7</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#failOnError">&lt;failOnError&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>whether to fail build or just print a warning when a validation
fails<br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#project">&lt;project&gt;</a></tt></td>
            
<td><tt>MavenProject</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /><b>User property is</b>: <tt>project</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#targetFiles">&lt;targetFiles&gt;</a></tt></td>
            
<td><tt>File[]</tt></td>
            
<td><tt>-</tt></td>
            
<td>The .target files to validate. If not specified and the project
packaging is &quot;eclipse-target-definition&quot;, the goal will validate
project's primary target file will be validated.<br /></td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        
<div class="section">
<h4><a name="a.3CcheckDependencies.3E"></a><b><a name="checkDependencies">&lt;checkDependencies&gt;</a></b></h4>
        
<div>Check that, for each artifact from the target file, the
dependencies of the artifact are also contained in the target file.
Also check that there are no conflicting artifacts, i.e. artifact
which could not be installed together. When this check passes, none
of the artifacts should lead to dependency resolution problems when
used in a Tycho project.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>0.21.0</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CcheckProvisioning.3E"></a><b><a name="checkProvisioning">&lt;checkProvisioning&gt;</a></b></h4>
        
<div>Check that the content of the target-platform can be installed
together in a same provisioning operation.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>0.26.0</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CexecutionEnvironment.3E"></a><b><a name="executionEnvironment">&lt;executionEnvironment&gt;</a></b></h4>
        
<div>(no description)</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>JavaSE-1.7</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CfailOnError.3E"></a><b><a name="failOnError">&lt;failOnError&gt;</a></b></h4>
        
<div>whether to fail build or just print a warning when a validation
fails</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 /></div>
<div class="section">
<h4><a name="a.3Cproject.3E"></a><b><a name="project">&lt;project&gt;</a></b></h4>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <tt>org.apache.maven.project.MavenProject</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>project</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CtargetFiles.3E"></a><b><a name="targetFiles">&lt;targetFiles&gt;</a></b></h4>
        
<div>The .target files to validate. If not specified and the project
packaging is &quot;eclipse-target-definition&quot;, the goal will validate
project's primary target file will be validated.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.io.File[]</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul>
      </div></div>
    </div>
  

        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &copy;2010&#x2013;2019
<a href="http://www.eclipse.org/">Eclipse Foundation</a>.
All rights reserved.</p>
        </div>
      </div>
    </footer>
  </body>
</html>
