Skip to content

Commit

Permalink
Tycho 4.0.5 release documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
Christoph Läubrich committed Jan 29, 2024
1 parent 8c9ab17 commit 6d6764a
Show file tree
Hide file tree
Showing 2,638 changed files with 80,030 additions and 1 deletion.
176 changes: 176 additions & 0 deletions doc/4.0.5/BndBuild.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
<!DOCTYPE html>


<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/markdown/BndBuild.md at 2024-01-29
| Rendered using Apache Maven Fluido Skin 1.11.1
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
<title>Tycho &#x2013; BND Workspace Layout and Pomless Builds</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.11.1.min.css" />
<link rel="stylesheet" href="./css/site.css" />
<link rel="stylesheet" href="./css/print.css" media="print" />
<script src="./js/apache-maven-fluido-1.11.1.min.js"></script>
</head>
<body class="topBarDisabled">
<div class="container-fluid">
<header>
<div id="banner">
<div class="pull-left"><div id="bannerLeft"><h1>Tycho</h1>
</div>
</div>
<div class="pull-right"></div>
<div class="clear"><hr/></div>
</div>

<div id="breadcrumbs">
<ul class="breadcrumb">
<li id="publishDate">Last Published: 2024-01-29<span class="divider">|</span>
</li>
<li id="projectVersion">Version: 4.0.5</li>
</ul>
</div>
</header>
<div class="row-fluid">
<header id="leftColumn" class="span2">
<nav class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header">Tycho</li>
<li><a href="index.html" title="Introduction"><span class="none"></span>Introduction</a></li>
<li><a href="StructuredBuild.html" title="Structured Build Layout and Pomless Builds"><span class="none"></span>Structured Build Layout and Pomless Builds</a></li>
<li class="active"><a><span class="none"></span>BND Workspace and Pomless Builds</a></li>
<li><a href="PackagingTypes.html" title="Packaging Types"><span class="none"></span>Packaging Types</a></li>
<li><a href="TargetPlatform.html" title="Target Platform"><span class="none"></span>Target Platform</a></li>
<li><a href="TestingBundles.html" title="Testing Bundles"><span class="none"></span>Testing Bundles</a></li>
<li><a href="TychoCiFriendly.html" title="Tycho CI Friendly Versions"><span class="none"></span>Tycho CI Friendly Versions</a></li>
<li><a href="Category.html" title="Creating update sites using category.xml"><span class="none"></span>Creating update sites using category.xml</a></li>
<li><a href="target-platform-configuration/plugin-info.html" title="Target Platform Configuration"><span class="none"></span>Target Platform Configuration</a></li>
<li><a href="tycho-compiler-plugin/plugin-info.html" title="Compiler Plugin"><span class="none"></span>Compiler Plugin</a></li>
<li><a href="tycho-ds-plugin/plugin-info.html" title="Declarative Services Plugin"><span class="none"></span>Declarative Services Plugin</a></li>
<li><a href="tycho-packaging-plugin/plugin-info.html" title="Packaging Plugin"><span class="none"></span>Packaging Plugin</a></li>
<li><a href="tycho-surefire-plugin/plugin-info.html" title="Surefire Plugin"><span class="none"></span>Surefire Plugin</a></li>
<li><a href="tycho-p2-publisher-plugin/plugin-info.html" title="p2 Publisher Plugin"><span class="none"></span>p2 Publisher Plugin</a></li>
<li><a href="tycho-p2-repository-plugin/plugin-info.html" title="p2 Repository Plugin"><span class="none"></span>p2 Repository Plugin</a></li>
<li><a href="tycho-p2-director-plugin/plugin-info.html" title="p2 Director Plugin"><span class="none"></span>p2 Director Plugin</a></li>
<li><a href="tycho-p2-plugin/plugin-info.html" title="p2 Metadata Plugin"><span class="none"></span>p2 Metadata Plugin</a></li>
<li><a href="tycho-source-plugin/plugin-info.html" title="Source Plugin"><span class="none"></span>Source Plugin</a></li>
<li><a href="tycho-gpg-plugin/plugin-info.html" title="GPG Signature Plugin"><span class="none"></span>GPG Signature Plugin</a></li>
<li><a href="tycho-versions-plugin/plugin-info.html" title="Versions Plugin"><span class="none"></span>Versions Plugin</a></li>
<li><a href="" title="Properties"><span class="icon-chevron-down"></span>Properties</a>
<ul class="nav nav-list">
<li><a href="BuildProperties.html" title="Build Properties"><span class="none"></span>Build Properties</a></li>
<li><a href="SystemProperties.html" title="System Properties"><span class="none"></span>System Properties</a></li>
<li><a href="TychoProperties.html" title="Tycho Properties"><span class="none"></span>Tycho Properties</a></li>
</ul></li>
<li class="nav-header">Tycho Extras</li>
<li><a href="tycho-extras/index.html" title="Introduction"><span class="none"></span>Introduction</a></li>
<li><a href="tycho-extras/tycho-p2-extras-plugin/plugin-info.html" title="P2 Extras Plugin"><span class="none"></span>P2 Extras Plugin</a></li>
<li><a href="tycho-extras/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-extras/tycho-eclipserun-plugin/plugin-info.html" title="Eclipserun Plugin"><span class="none"></span>Eclipserun Plugin</a></li>
<li><a href="tycho-extras/tycho-document-bundle-plugin/plugin-info.html" title="Document Bundle Plugin"><span class="none"></span>Document Bundle Plugin</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>
</ul>
</nav>
<div class="well sidebar-nav">
<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>
</header>
<main id="bodyColumn" class="span10" >
<section>
<h2><a name="BND_Workspace_Layout_and_Pomless_Builds"></a>BND Workspace Layout and Pomless Builds</h2>
<p>Tycho supports building projects that use the <b>BND Workspace Layout</b> as <a class="externalLink" href="https://bndtools.org/concepts.html">described here</a>.</p><section>
<h3><a name="BND_Workspace_Layout"></a>BND Workspace Layout</h3>
<p>A BND Workspace layout build layout usually has the following structure:</p>
<ul>

<li><code>root folder</code> - this usually is the root of your project repository (e.g. git)
<ul>

<li><code>cnf</code> - configuration folder for general setup
<ul>

<li><code>build.bnd</code> - main configuration file</li>
<li><code>ext</code> - additional configuration (optional)</li>
</ul>
</li>
<li><code>bundle1</code> - A bundle project
<ul>

<li><code>bnd.bnd</code> - project configuration file</li>
</ul>
</li>
<li><code>bundle2</code> - Another bundle project
<ul>

<li><code>bnd.bnd</code> - project configuration file</li>
</ul>
</li>
<li><code>...</code></li>
</ul>
</li>
</ul>
<p>any folder that do not match the layout is ignored.</p></section><section>
<h3><a name="Pomless_Builds"></a>Pomless Builds</h3>
<p>Given the above layout, Tycho now has a good knowledge about what your build artifacts are.
In contrast to a traditional maven build where each module has to contain a <code>pom.xml</code> file Tycho can derive most all from your supplied bnd configuration files, so everything is configured there and usually no additional maven configuration is required, therefore this build is completely pomless (no pom.xml), there are only a few steps to consider:</p>
<ol style="list-style-type: decimal">

<li>Add a folder called <code>.mvn</code> to the root</li>
<li>Inside the <code>.mvn</code> folder place a file called <code>extensions.xml</code> with the following content:</li>
</ol>

<div class="source"><pre class="prettyprint"><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;extensions&gt;
&lt;extension&gt;
&lt;groupId&gt;org.eclipse.tycho&lt;/groupId&gt;
&lt;artifactId&gt;tycho-build&lt;/artifactId&gt;
&lt;version&gt;${tycho-version}&lt;/version&gt;
&lt;/extension&gt;
&lt;/extensions&gt;
</code></pre></div>
<ol style="list-style-type: decimal">

<li>create a file called <code>maven.config</code> in the <code>.mvn</code> folder with the following content (adjust the version accordingly!):</li>
</ol>

<div class="source"><pre class="prettyprint"><code>-Dtycho-version=3.0.0
</code></pre></div>
<ol style="list-style-type: decimal">

<li>You can now run your build with <code>mvn clean verify</code></li>
</ol>
<p>A runnable demo can be found here:
<a class="externalLink" href="https://github.com/eclipse-tycho/tycho/tree/master/demo/bnd-workspace">https://github.com/eclipse-tycho/tycho/tree/master/demo/bnd-workspace</a></p></section><section>
<h3><a name="Mixed_Builds"></a>Mixed Builds</h3>
<p>You can even combine a BND Workspace and PDE bundles in a build, a runnable demo can be found here:
<a class="externalLink" href="https://github.com/eclipse-tycho/tycho/tree/master/demo/bnd-pde-workspace">https://github.com/eclipse-tycho/tycho/tree/master/demo/bnd-pde-workspace</a></p></section></section>
</main>
</div>
</div>
<hr/>
<footer>
<div class="container-fluid">
<div class="row-fluid">
<p>&#169; 2008&#x2013;2024
<a href="https://www.eclipse.org/">Eclipse Foundation</a>
</p>
</div>
</div>
</footer>
<script>
if(anchors) {
anchors.add();
}
</script>
</body>
</html>
Loading

0 comments on commit 6d6764a

Please sign in to comment.