|Tycho has moved to Eclipse|
The new project entry page is http://www.eclipse.org/tycho/.
The documentation is only maintained in the Eclipse wiki; this wiki space is outdated.
Tycho is a set of Maven plugins and extensions for building Eclipse plugins and OSGI bundles with Maven. Eclipse plugins and OSGI bundles have their own metadata for expressing dependencies, source folder locations, etc. that are normally found in a Maven POM. Tycho uses native metadata for Eclipse plugins and OSGi bundles and uses the POM to configure and drive the build. Tycho supports bundles, fragments, features, update site projects and RCP applications. Tycho also knows how to run JUnit test plugins using OSGi runtime and there is also support for sharing build results using Maven artifact repositories.
Tycho plugins introduce new packaging types and the corresponding lifecycle bindings that allow Maven to use OSGi and Eclipse metadata during a Maven build. OSGi rules are used to resolve project dependencies and package visibility restrictions are honoured by the OSGi-aware JDT-based compiler plugin. Tycho will use OSGi metadata and OSGi rules to calculate project dependencies dynamically and injects them into the Maven project model at build time. Tycho supports all attributes supported by the Eclipse OSGi resolver (Require-Bundle, Import-Package, Eclipse-GenericRequire, etc). Tycho will use proper classpath access rules during compilation. Tycho supports all project types supported by PDE and will use PDE/JDT project metadata where possible. One important design goal in Tycho is to make sure there is no duplication of metadata between POM and OSGi metadata.
In Eclipse PDE, the "target platform" is roughly speaking the Eclipse installation where the projects being developed will be deployed. When building, the OSGi dependency resolver uses the bundles in the target platform to resolve dependencies not in the source projects. Tycho supports building the target platform itself in one of two ways. The target platform can be defined as project dependencies in POMs and Tycho will automatically download all necessary artifacts from remote repositories and assemble target platform during the build. It is also possible to use local Eclipse installation as build's target platform. If bundles with the same symbolic name are present both in the build and in the target platform, then bundles from the target platform will be ignored (with a warning).
Tycho will support remote repositories both as source and sink for artifacts. We plan to support Maven repositories, P2 repositories and update sites, although level of support will likely vary. There will also be integration between M2Eclipse, Tycho and PDE to make the three work nicely together.
Page: Discussion on eclipse-repository packaging type clean-up
Page: EclipseCon 2011
Page: ITP04 - Demo RCP Application and P2 Updateable Eclipse Product
Page: P2 Data Flow in Tycho
Page: Password protected p2 repositories
Page: Project Information
Page: Tycho-extras - FeaturesAndBundlesPublisher
Page: Tycho reference card