Tycho Documentation
Eclipse Tycho is a set of Maven plugins and extensions for building Eclipse plug-ins, OSGi bundles, Eclipse features, update sites/p2 repositories, RCP applications, and BND workspaces with Maven.
Getting Started
Tycho Build Extension
The Tycho Build Extension is a core component that enables pomless builds, enhanced dependency resolution, and CI-friendly versioning. This is the starting point for enabling Tycho in your Maven projects.
Structured Build Layout and Pomless Builds
Learn how to build Eclipse plugin projects without requiring a pom.xml file in every module. This simplifies project structure and reduces boilerplate configuration.
BND Workspace and Pomless Builds
Build BND workspaces with Maven and Tycho, combining the power of BND tooling with Maven's dependency management.
Core Concepts
Packaging Types
Tycho defines custom Maven packaging types for Eclipse development including eclipse-plugin, eclipse-feature, eclipse-repository, and more. Understanding these is essential for working with Tycho.
Target Platform
The target platform defines the set of bundles and features your project builds against. Learn how to configure and manage your target platform using p2 repositories, local installations, or .target files.
Testing Bundles
Run OSGi bundle tests with Tycho Surefire. This section covers unit testing, integration testing, and UI testing for Eclipse plugins.
Building and Deployment
Building Products
Create Eclipse RCP applications and products with Tycho. Learn how to define products, materialize them, and create platform-specific distributions.
Signing Products
Sign your Eclipse products for distribution using code signing certificates.
Creating update sites using category.xml
Build p2 repositories and Eclipse update sites for distributing your plugins and features.
Creating SBOMs for Eclipse Artifacts
Generate Software Bill of Materials (SBOM) documents for your Eclipse artifacts to track dependencies and improve security.
Advanced Topics
Tycho CI Friendly Versions
Use enhanced version properties for continuous integration workflows and automated releases.
Properties
- Build Properties - Configure build.properties for Eclipse projects
- System Properties - Control Tycho behavior with system properties
- Tycho Properties - Maven properties specific to Tycho
Troubleshooting
Common issues and their solutions when working with Tycho.
Plugin Reference
Tycho provides numerous Maven plugins for various aspects of Eclipse development:
Main Plugins
- Tycho Packaging Plugin (
tycho-packaging-plugin) - Core packaging capabilities- package-plugin - Packages OSGi bundles
- package-feature - Packages Eclipse features
- package-iu - Packages installable units
- package-target-definition - Packages target definitions
- build-qualifier - Generates build qualifier timestamps
- build-qualifier-aggregator - Aggregates build qualifiers
- validate-id - Validates artifact IDs
- validate-version - Validates artifact versions
- update-consumer-pom - Updates consumer POMs
- Tycho Compiler Plugin (
tycho-compiler-plugin) - Compile OSGi bundles with Eclipse JDT- compile - Compiles main source code
- testCompile - Compiles test source code
- validate-classpath - Validates classpath
- Tycho Surefire Plugin (
tycho-surefire-plugin) - Run tests in an OSGi runtime- test - Runs unit tests
- plugin-test - Runs plugin tests
- verify - Verifies test results
- Tycho P2 Repository Plugin (
tycho-p2-repository-plugin) - Create p2 repositories- assemble-repository - Assembles p2 repository
- archive-repository - Archives p2 repository
- assemble-maven-repository - Assembles Maven repository
- fix-artifacts-metadata - Fixes artifacts metadata
- verify-repository - Verifies repository
- Tycho P2 Director Plugin (
tycho-p2-director-plugin) - Assemble and materialize products- materialize-products - Materializes Eclipse products
- archive-products - Archives Eclipse products
- director - Runs p2 director
Additional Plugins
- Baseline Plugin (
tycho-baseline-plugin) - Compare artifacts with baseline versions- verify - Compares artifacts with baseline
- check-dependencies - Checks dependency versions
- BND Plugin (
tycho-bnd-plugin) - Build BND workspaces- build - Builds BND workspace
- compile - Compiles BND projects
- test-compile - Compiles BND test code
- process - Processes BND workspace
- integration-test - Runs integration tests
- initialize - Initializes BND workspace
- clean - Cleans BND workspace
- Declarative Services Plugin (
tycho-ds-plugin) - Handle OSGi Declarative Services- declarative-services - Generates DS component descriptors
- PDE API Tools Plugin (
tycho-apitools-plugin) - API analysis and compatibility checking - Source Plugin (
tycho-source-plugin) - Package source bundles- generate-pde-source-header - Generates PDE source headers
- Versions Plugin (
tycho-versions-plugin) - Update project versions- set-version - Sets project version
- set-property - Sets version property
- set-parent-version - Sets parent version
- update-eclipse-metadata - Updates Eclipse metadata
- update-pom - Updates POM versions
- GPG Signature Plugin (
tycho-gpg-plugin) - Sign p2 artifacts with GPG- sign-p2-artifacts - Signs p2 artifacts with GPG
- P2 Metadata Plugin (
tycho-p2-plugin) - Generate p2 metadata- p2-metadata - Generates p2 metadata
- p2-metadata-default - Generates default p2 metadata
- category-p2-metadata - Generates category p2 metadata
- feature-p2-metadata - Generates feature p2 metadata
- update-site-p2-metadata - Generates update site metadata
- update-local-index - Updates local index
- dependency-tree - Displays dependency tree
- P2 Publisher Plugin (
tycho-p2-publisher-plugin) - Publish artifacts to p2 repositories- publish-products - Publishes products to p2
- publish-categories - Publishes categories to p2
- publish-osgi-ee - Publishes OSGi execution environments
- publish-ee-profile - Publishes EE profiles
- attach-artifacts - Attaches artifacts
- CleanCode Plugin (
tycho-cleancode-plugin) - Automatic code cleanup - Eclipse Plugin (
tycho-eclipse-plugin) - Work with Eclipse installations- eclipse-run - Runs Eclipse application
- eclipse-build - Builds with Eclipse
- Wrap Plugin (
tycho-wrap-plugin) - Wrap plain JARs into OSGi bundles - SBOM Plugin (
tycho-sbom-plugin) - Generate Software Bill of Materials- generator - Generates SBOM document
Tycho Extras
- Document Bundle Plugin (
tycho-document-bundle-plugin) - Generate documentation bundles- build-help-index - Builds help index
- javadoc - Generates Javadoc
- schema-to-html - Converts schemas to HTML
- configure-document-bundle-plugin - Configures document bundle plugin
- P2 Extras Plugin (
tycho-p2-extras-plugin) - Additional p2 functionality- publish-features-and-bundles - Publishes features and bundles
- mirror - Mirrors p2 repository
- compare-version-with-baselines - Compares versions with baselines
- Target Platform Validation Plugin (
target-platform-validation-plugin) - Validate target platform definitions- validate-target-platform - Validates target platform
- Version Bump Plugin (
tycho-version-bump-plugin) - Update target platform versions- update-target - Updates target platform versions
- update-product - Updates product versions
- update-manifest - Updates manifest versions
