Skip to content

Commit

Permalink
Update sitedocs for branch main
Browse files Browse the repository at this point in the history
  • Loading branch information
eclipse-tycho-bot committed Dec 27, 2024
1 parent a9c92b9 commit 74d691a
Show file tree
Hide file tree
Showing 528 changed files with 37,539 additions and 17,889 deletions.
48 changes: 23 additions & 25 deletions doc/main/BndBuild.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@

<!--
| Generated by Apache Maven Doxia Site Renderer 2.0.0 from src/site/markdown/BndBuild.md at 2024-12-27
| Rendered using Apache Maven Fluido Skin 2.0.0-M10
| Rendered using Apache Maven Fluido Skin 2.0.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 2.0.0" />
<title>BND Workspace Layout and Pomless Builds – Tycho</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-2.0.0-M10.min.css" />
<link rel="stylesheet" href="./css/apache-maven-fluido-2.0.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-2.0.0-M10.min.js"></script>
<script src="./js/apache-maven-fluido-2.0.1.min.js"></script>
</head>
<body>
<div class="container-fluid container-fluid-top">
Expand Down Expand Up @@ -98,12 +98,12 @@
<main id="bodyColumn" class="span10">
<section><a id="BND_Workspace_Layout_and_Pomless_Builds"></a>
<h1>BND Workspace Layout and Pomless Builds</h1>
<p>Tycho supports building projects that use the <strong>BND Workspace Layout</strong> as <a href="https://bndtools.org/concepts.html" class="externalLink">described here</a>.</p><section><a id="BND_Workspace_Layout"></a>
<p>Tycho supports building projects that use the <a href="https://bndtools.org/concepts.html" class="externalLink">BND Workspace Layout</a>.</p><section><a id="BND_Workspace_Layout"></a>
<h2>BND Workspace Layout</h2>
<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)
<li><code>root folder</code> - this usually is the root of your project repository
<ul>

<li><code>cnf</code> - configuration folder for general setup
Expand All @@ -125,41 +125,39 @@ <h2>BND Workspace Layout</h2>
<li><code>...</code></li>
</ul></li>
</ul>
<p>any folder that do not match the layout is ignored.</p></section><section><a id="Pomless_Builds"></a>
<p>Any folder that does not match the layout is ignored.</p></section><section><a id="Pomless_Builds"></a>
<h2>Pomless Builds</h2>
<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;">
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 <code>pom.xml</code>), there are only a few steps to consider:</p>
<ul>

<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>
</ul>

<pre class="prettyprint"><code class="nohighlight nocode">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
<pre class="prettyprint linenums"><code class="language-xml">&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;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>
<ol style="list-style-type: decimal;">
<ul>

<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>
</ul>

<pre class="prettyprint"><code class="nohighlight nocode">-Dtycho-version=3.0.0
<pre class="prettyprint linenums"><code class="language-properties">-Dtycho-version=4.0.10
</code></pre>
<ol style="list-style-type: decimal;">
<ul>

<li>You can now run your build with <code>mvn clean verify</code></li>
</ol>
<p>A runnable demo can be found here:
<a href="https://github.com/eclipse-tycho/tycho/tree/master/demo/bnd-workspace" class="externalLink">https://github.com/eclipse-tycho/tycho/tree/master/demo/bnd-workspace</a></p></section><section><a id="Mixed_Builds"></a>
<li>You can now run your build with <code>mvn clean verify</code>.</li>
</ul>
<p>You can check more details in a <a href="https://github.com/eclipse-tycho/tycho/tree/master/demo/bnd-workspace" class="externalLink">demo project</a>.</p></section><section><a id="Mixed_Builds"></a>
<h2>Mixed Builds</h2>
<p>You can even combine a BND Workspace and PDE bundles in a build, a runnable demo can be found here:
<a href="https://github.com/eclipse-tycho/tycho/tree/master/demo/bnd-pde-workspace" class="externalLink">https://github.com/eclipse-tycho/tycho/tree/master/demo/bnd-pde-workspace</a></p></section></section> </main>
<p>You can even combine a BND Workspace and PDE bundles in a build, see <a href="https://github.com/eclipse-tycho/tycho/tree/master/demo/bnd-pde-workspace" class="externalLink">demo</a>.</p></section></section> </main>
</div>
</div>
<hr/>
Expand Down
14 changes: 7 additions & 7 deletions doc/main/BuildProperties.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@

<!--
| Generated by Apache Maven Doxia Site Renderer 2.0.0 from src/site/markdown/BuildProperties.md at 2024-12-27
| Rendered using Apache Maven Fluido Skin 2.0.0-M10
| Rendered using Apache Maven Fluido Skin 2.0.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 2.0.0" />
<title>Build Properties – Tycho</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-2.0.0-M10.min.css" />
<link rel="stylesheet" href="./css/apache-maven-fluido-2.0.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-2.0.0-M10.min.js"></script>
<script src="./js/apache-maven-fluido-2.0.1.min.js"></script>
</head>
<body>
<div class="container-fluid container-fluid-top">
Expand Down Expand Up @@ -125,7 +125,7 @@ <h2>Common Properties</h2>
<td>supported</td></tr>
<tr class="b">
<td>qualifier</td>
<td>not supported - use <a href="tycho-packaging-plugin/build-qualifier-mojo.html">Build Qualifer Mojo</a> instead</td></tr>
<td>not supported - use <a href="tycho-packaging-plugin/build-qualifier-mojo.html">Build Qualifier Mojo</a> instead</td></tr>
<tr class="a">
<td>forceContextQualifier</td>
<td>supported</td></tr>
Expand Down Expand Up @@ -169,7 +169,7 @@ <h2>Plugin-specific properties</h2>
<td>supported</td></tr>
<tr class="a">
<td>additional.bundles</td>
<td>supported (since Tycho 2.4.0)</td></tr></tbody>
<td>supported</td></tr></tbody>
</table>
</section><section><a id="Compiler-specific_properties"></a>
<h2>Compiler-specific properties</h2>
Expand Down Expand Up @@ -236,10 +236,10 @@ <h2>Feature-specific properties</h2>
<td>supported</td></tr>
<tr class="b">
<td>root.folder</td>
<td>supported (since Tycho 0.27.0)</td></tr>
<td>supported</td></tr>
<tr class="a">
<td>root.config.folder</td>
<td>supported (since Tycho 0.27.0)</td></tr>
<td>supported</td></tr>
<tr class="b">
<td>root.permissions</td>
<td>supported</td></tr>
Expand Down
30 changes: 15 additions & 15 deletions doc/main/Category.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@

<!--
| Generated by Apache Maven Doxia Site Renderer 2.0.0 from src/site/markdown/Category.md at 2024-12-27
| Rendered using Apache Maven Fluido Skin 2.0.0-M10
| Rendered using Apache Maven Fluido Skin 2.0.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 2.0.0" />
<title>Category – Tycho</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-2.0.0-M10.min.css" />
<link rel="stylesheet" href="./css/apache-maven-fluido-2.0.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-2.0.0-M10.min.js"></script>
<script src="./js/apache-maven-fluido-2.0.1.min.js"></script>
</head>
<body>
<div class="container-fluid container-fluid-top">
Expand Down Expand Up @@ -98,14 +98,14 @@
<main id="bodyColumn" class="span10">
<section><a id="Category"></a>
<h1>Category</h1>
<p>A category.xml file can be used to define which content is placed into a p2 repository.
<p>A <code>category.xml</code> file can be used to define which content is placed into a p2 repository.
It can also specify how to display the content in the p2 installation dialog.
For Tycho to use it, it must to be placed into the root of an project with the packaging type &#x2018;eclipse-repository&#x2019;.</p>
<p>The &#x2018;category.xml&#x2019; format was originally defined by the Eclipse PDE project.
<p>The <code>category.xml</code> format was originally defined by the Eclipse PDE project.
There are extensions to the format only supported by p2 and Tycho.</p>
<p>The following listing is a simple category file listing only one feature and one plug-in.</p>
<p>The following snippet is a simple category file listing only one feature and one plug-in.</p>

<pre class="prettyprint"><code class="nohighlight nocode">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
<pre class="prettyprint linenums"><code class="language-xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;site&gt;
&lt;feature id=&quot;com.example.feature&quot;&gt;
&lt;category name=&quot;com.example.category.update&quot;/&gt;
Expand All @@ -115,23 +115,23 @@ <h1>Category</h1>
</code></pre>
<p>The following is an example, demonstrating a complex category definition.</p>

<pre class="prettyprint"><code class="nohighlight nocode">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
<pre class="prettyprint linenums"><code class="language-xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;site&gt;
&lt;!-- Include features --&gt;
&lt;feature id=&quot;feature.id&quot; version=&quot;1.4.100.v2009&quot;/&gt;
&lt;!-- Since Tycho 1.1.0 (https://bugs.eclipse.org/bugs/show_bug.cgi?id=407273#c18), features can declare platform-specific compatibility for multi-platform builds --&gt;
&lt;!-- Examples: https://github.com/mickaelistria/org.eclipse.simrel.build/blob/master/categories/category.xml#L581 --&gt;
&lt;feature id=&quot;linux.specific.feature.id&quot; version=&quot;0.0.0&quot; os=&quot;linux&quot;/&gt;

&lt;!-- Directly include bundles, without a feature --&gt;
&lt;bundle id=&quot;bundle.id&quot; version=&quot;1.3.1.v2023&quot;/&gt;

&lt;!-- Directly include any iu --&gt;
&lt;iu id=&quot;unit.id&quot;/&gt;

&lt;!-- Include all IUs matching an expression --&gt;
&lt;iu&gt;
&lt;query&gt;
&lt;query&gt;
&lt;expression type=&quot;match&quot;&gt;
&lt;![CDATA[
id == $0
Expand All @@ -140,21 +140,21 @@ <h1>Category</h1>
&lt;param&gt;another.unit.id&lt;/param&gt;
&lt;/query&gt;
&lt;/iu&gt;

&lt;!-- Categories --&gt;
&lt;feature id=&quot;feature.in.category&quot;&gt;
&lt;category name=&quot;category.id&quot;/&gt;
&lt;/feature&gt;
&lt;category-def name=&quot;category.id&quot; label=&quot;Category Label&quot;&gt;
&lt;description&gt;Details on the category&lt;/description&gt;
&lt;/category-def&gt;

&lt;!-- example for a dynamic category --&gt;
&lt;category-def name=&quot;javax&quot; label=&quot;Bundles starting with javax.&quot;/&gt;
&lt;iu&gt;
&lt;category name=&quot;javax&quot;/&gt;
&lt;query&gt;
&lt;expression type=&quot;match&quot;&gt;id ~= /javax.*/&lt;/expression&gt;
&lt;expression type=&quot;match&quot;&gt;id ~= /javax.*/&lt;/expression&gt;
&lt;/query&gt;
&lt;/iu&gt;
&lt;/site&gt;
Expand Down
30 changes: 15 additions & 15 deletions doc/main/PackagingTypes.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@

<!--
| Generated by Apache Maven Doxia Site Renderer 2.0.0 from src/site/markdown/PackagingTypes.md at 2024-12-27
| Rendered using Apache Maven Fluido Skin 2.0.0-M10
| Rendered using Apache Maven Fluido Skin 2.0.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 2.0.0" />
<title>Packaging Types – Tycho</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-2.0.0-M10.min.css" />
<link rel="stylesheet" href="./css/apache-maven-fluido-2.0.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-2.0.0-M10.min.js"></script>
<script src="./js/apache-maven-fluido-2.0.1.min.js"></script>
</head>
<body>
<div class="container-fluid container-fluid-top">
Expand Down Expand Up @@ -102,30 +102,30 @@ <h1>Packaging Types</h1>
<ul>

<li><code>eclipse-plugin</code> corresponds to <a href="https://github.com/eclipse-pde/eclipse.pde/blob/master/docs/User_Guide.md#Plug-in" class="externalLink">Eclipse Plug-in and Plug-in Fragment projects</a>.</li>
<li><code>eclipse-test-plugin</code> is similar to <code>eclipse-plugin</code> but only contains Plugin Tests to be executed inside an OSGi runtime. There is a noticable difference between <code>eclipse-plugin</code> and <code>eclipse-test-plugin</code> with respect to the goal executed during <code>integration-test</code>. The former uses <code>tycho-surefire-plugin:integration-test</code> while the latter uses <code>tycho-surefire-plugin:test</code>.</li>
<li><code>eclipse-test-plugin</code> is similar to <code>eclipse-plugin</code> but only contains Plugin Tests to be executed inside an OSGi runtime. There is a notable difference between <code>eclipse-plugin</code> and <code>eclipse-test-plugin</code> with respect to the goal executed during <code>integration-test</code>. The former uses <code>tycho-surefire-plugin:integration-test</code> while the latter uses <code>tycho-surefire-plugin:test</code>.</li>
<li><code>eclipse-feature</code> corresponds to <a href="https://github.com/eclipse-pde/eclipse.pde/blob/master/docs/User_Guide.md#Feature" class="externalLink">Eclipse Feature projects</a></li>
<li><code>eclipse-repository</code> corresponds to projects containing a <code>category.xml</code> file, the support of [Eclipse Update Site projects]<a href="https://github.com/eclipse-pde/eclipse.pde/blob/master/docs/User_Guide.md#Update-Site" class="externalLink">https://github.com/eclipse-pde/eclipse.pde/blob/master/docs/User_Guide.md#Update-Site</a>) has been removed in latest Tycho versions</li>
<li><code>eclipse-repository</code> corresponds to projects containing a <code>category.xml</code> file, the support of <a href="https://github.com/eclipse-pde/eclipse.pde/blob/master/docs/User_Guide.md#Update-Site" class="externalLink">Eclipse Update Site projects</a> has been removed in latest Tycho versions</li>
<li><code>eclipse-target-definition</code> corresponds to <a href="https://github.com/eclipse-pde/eclipse.pde/blob/master/docs/User_Guide.md#Target_Platform" class="externalLink">Eclipse Target Platform</a></li>
<li><code>p2-installable-unit</code> corresponds to <a href="https://github.com/eclipse-equinox/p2/blob/master/docs/Installable_Units.md" class="externalLink">Installable Units</a></li>
</ul>
<p>The lifecycle bindings (i.e. which Maven plugins are executed in which Maven phase by default) are defined by <code>tycho-maven-plugin</code> in a <a href="https://maven.apache.org/guides/mini/guide-using-extensions.html" class="externalLink">Maven extension</a> therefore it needs to be loaded accordingly:</p>

<pre class="prettyprint"><code class="nohighlight nocode">&lt;plugin&gt;
&lt;groupId&gt;org.apache.tycho&lt;/groupId&gt;
&lt;artifactId&gt;tycho-maven-plugin&lt;/artifactId&gt;
&lt;version&gt;${project.version}&lt;/version&gt;
&lt;extensions&gt;true&lt;/extensions&gt;
<pre class="prettyprint linenums"><code class="language-xml">&lt;plugin&gt;
&lt;groupId&gt;org.apache.tycho&lt;/groupId&gt;
&lt;artifactId&gt;tycho-maven-plugin&lt;/artifactId&gt;
&lt;version&gt;${project.version}&lt;/version&gt;
&lt;extensions&gt;true&lt;/extensions&gt;
&lt;/plugin&gt;
</code></pre>
<p>All bindings are defined in <a href="https://github.com/eclipse-tycho/tycho/blob/master/tycho-maven-plugin/src/main/resources/META-INF/plexus/components.xml" class="externalLink">https://github.com/eclipse-tycho/tycho/blob/master/tycho-maven-plugin/src/main/resources/META-INF/plexus/components.xml</a>.
Only the <code>default</code> lifecycle has custom bindings, i.e. the <a href="https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#lifecycle-reference" class="externalLink"><code>clean</code> and <code>site</code> lifecycles</a> behave as for every other packaging.</p>
<p>The according artifact handlers (i.e. the mapping from the packaging type to a specific extension) are provided by <code>p2-maven-plugin</code> in <a href="https://github.com/eclipse-tycho/tycho/tree/master/p2-maven-plugin/src/main/java/org/eclipse/tycho/p2maven/repository" class="externalLink">https://github.com/eclipse-tycho/tycho/tree/master/p2-maven-plugin/src/main/java/org/eclipse/tycho/p2maven/repository</a>. When referencing one of the packaging types as Maven dependency it needs to be loaded with extensions as well:</p>

<pre class="prettyprint"><code class="nohighlight nocode">&lt;plugin&gt;
&lt;groupId&gt;org.apache.tycho&lt;/groupId&gt;
&lt;artifactId&gt;p2-maven-plugin&lt;/artifactId&gt;
&lt;version&gt;${project.version}&lt;/version&gt;
&lt;extensions&gt;true&lt;/extensions&gt;
<pre class="prettyprint linenums"><code class="language-xml">&lt;plugin&gt;
&lt;groupId&gt;org.apache.tycho&lt;/groupId&gt;
&lt;artifactId&gt;p2-maven-plugin&lt;/artifactId&gt;
&lt;version&gt;${project.version}&lt;/version&gt;
&lt;extensions&gt;true&lt;/extensions&gt;
&lt;/plugin&gt;
</code></pre></section> </main>
</div>
Expand Down
Loading

0 comments on commit 74d691a

Please sign in to comment.