Example on how to use Maven & Tycho to build an Eclipse plug-in, feature, and update site.
Find a file
2024-09-19 19:11:58 +02:00
.github/workflows Updates Maven to v3.9.9 2024-08-23 07:44:58 +02:00
org.example.impl Updates Maven JavaDoc plugin to v3.8.0 2024-07-25 08:50:13 +02:00
org.example.impl.dependencies Adds a dependencies project for demonstration purposes 2023-08-07 16:13:53 +02:00
org.example.impl.feature Adds dependencies to the updatesite build 2023-10-06 11:29:07 +02:00
org.example.impl.tests Renames test project to org.example.impl.tests 2023-08-05 08:56:36 +02:00
org.example.impl.updatesite Updates Maven resource plugin to v3.3.1 2023-09-19 12:57:36 +02:00
.gitignore Fixes a pom description + adds a gitignore for target builds 2023-04-24 10:24:33 +02:00
LICENSE Cosmetic changes 2023-04-24 09:56:40 +02:00
pom.xml Updates Eclipse version to 2024-09 R 2024-09-19 19:05:16 +02:00
README.md Adds a dependencies project for demonstration purposes 2023-08-07 16:13:53 +02:00

Maven Tycho Eclipse example

This example shows how to build a complete (and functional) P2 Eclipse update site with Maven and Tycho. It can be used to create Eclipse update sites from various projects and features headlessley, e.g., with the help of a CI pipeline and without the need to run Eclipse tasks manually.

CI

Structure

Name Type Purpose
org.example.impl Eclipse (plug-in) project Contains the implementation of a feature or an Eclipse plug-in (in this case an empty example).
org.example.impl.feature Eclipse Feature project Contains the necessary information for the feature to export.
org.example.impl.updatesite Eclipse Update Site project Contains the update site configuration (to include the feature above).
org.example.impl.dependencies Eclipse (plug-in) project Contains all necessary dependencies (JARs).
org.example.impl.tests Eclipse (plug-in) project Contains all tests and test-related content.
ci.yml File Example GitHub Actions configuration to build and push the update site.
pom.xml File Maven configuration file that contains the parent group/porject.

How to build

  • Build the project + feature + update site:
    $ mvn clean package
  • Build + install the project to the local .m2/ folder:
    $ mvn clean install
  • Run all tests:
    $ mvn clean verify
  • Change the version of the plug-in to a new semver (e.g., before publishing a new release):
    $ mvn versions:set -DnewVersion=0.0.2-SNAPSHOT

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for more details.