Tycho/Plugins Explained
The purpose of this page is to document the various Tycho plugins for Maven and how they are used in the Eclipse build process. This page is meant to be a landing page (cheat sheet) for the plugins and will not necessarily contain the information directly. Most of this information is already available in various forum posts and email threads. This page is merely a centralized location to aggregate (not duplicate) links to and summaries of the information users desire.
The eclipse-parent pom is the base pom file for most Eclipse projects (not including the Super POM). It contains many plugins from Tycho and CBI that are useful in other production environments. As new information and plugins become available we will try to update this page as best as possible.
Contents
- 1 Plugins:
- 2 Plugins:
- 2.1 tycho-buildtimestamp-jgit
- 2.2 tycho-compiler-plugin
- 2.3 tycho-custom-bundle-plugin
- 2.4 tycho-maven-plugin
- 2.5 tycho-p2-director-plugin
- 2.6 tycho-p2-plugin
- 2.7 tycho-p2-repository-plugin
- 2.8 tycho-pack200a-plugin
- 2.9 tycho-pack200b-plugin
- 2.10 tycho-packaging-plugin
- 2.11 tycho-source-feature-plugin
- 2.12 tycho-source-plugin
- 2.13 tycho-surefire-plugin
Plugins:
eclipse-cbi-plugin
Insert Brief Description
References
Examples
<build>
<plugins>
<plugin>
...
</plugin>
<plugin>
<groupId>org.eclipse.cbi.maven.plugins</groupId>
<artifactId>eclipse-cbi-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<goals>
<goal>generate-api-build-xml</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
eclipse-jarsigner-plugin
Insert Brief Description
References
Examples
<profiles>
<profile>
<id>eclipse-sign</id>
<build>
<plugins>
<plguin>
...
</plugin>
<plugin>
<groupId>org.eclipse.cbi.maven.plugins</groupId>
<artifactId>eclipse-jarsigner-plugin</artifactId>
<version>1.0.2</version>
<executions>
<execution>
<id>sign</id>
<goals>
<goal>sign</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
target-platform-configuration
Insert Brief Description
References
- see thread: What's org.eclipse.tycho:target-platform-configuration about?
- see bug: Defer target&dependency resolution to the normal build
Examples
|
<profiles> <profile> <id>eclipse-sign</id> <build> <plugins> <plugin> <groupId>org.eclipse.tycho</groupId> <artifactId>target-platform-configuration</artifactId> <version>${tycho.version}</version> <configuration> <includePackedArtifacts>true</includePackedArtifacts> </configuration> </plugin> </plugins> </build> </profile> </profiles> |
Plugins:
tycho-buildtimestamp-jgit
Use this plugin to generate stable version qualifiers. Instead of creating a version qualifier based on the time of the actual build, the version qualifier is based on the most recent commit. When configured with an associated p2 repository, the same artifact id/version are guaranteed to represent the same artifact contents. The advantage being only those plugins whose contents materially changed are downloaded during a p2 update.
References Reproducible Version Qualifiers Re: [tycho-user build-qualifier-aggregator failed: One of setGitDir or setWorkTree must be called]
Examples Reproducible Version Qualifiers - Configuratioin
tycho-compiler-plugin
Insert Brief Description
References
Examples
|
|
tycho-custom-bundle-plugin
Insert Brief Description
References
Examples
<build>
<pluginManagement>
<plugins>
<plugin>
...
</plugin>
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-custom-bundle-plugin</artifactId>
<version>${tycho-extras.version}</version>
</plugin>
</plugins>
</pluginManagement>
</build>
tycho-maven-plugin
Insert Brief Description
References
Examples
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>${tycho.version}</version>
<extensions>true</extensions>
</plugin>
</plugins>
</build>
tycho-p2-director-plugin
Insert Brief Description
References
Examples
<build>
<pluginManagement>
<plugins>
<plugin>
...
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-p2-director-plugin</artifactId>
<version>${tycho.version}</version>
</plugin>
</plugins>
</pluginManagement>
</build>
tycho-p2-plugin
Insert Brief Description
References
Examples
|
|
tycho-p2-repository-plugin
Insert Brief Description
References
Examples
<build>
<pluginManagement>
<plugins>
<plugin>
...
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-p2-repository-plugin</artifactId>
<version>${tycho.version}</version>
</plugin>
</plugins>
</pluginManagement>
</build>
tycho-pack200a-plugin
Insert Brief Description
References
Examples
<profiles>
<profile>
<id>eclipse-sign</id>
<build>
<plugins>
<plguin>
...
</plugin>
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-pack200a-plugin</artifactId>
<version>${tycho-extras.version}</version>
<executions>
<execution>
<id>pack200-normalize</id>
<goals>
<goal>normalize</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
tycho-pack200b-plugin
Insert Brief Description
References
Examples
<profiles>
<profile>
<id>eclipse-sign</id>
<build>
<plugins>
<plguin>
...
</plugin>
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-pack200b-plugin</artifactId>
<version>${tycho-extras.version}</version>
<executions>
<execution>
<id>pack200-pack</id>
<goals>
<goal>pack</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
tycho-packaging-plugin
Insert Brief Description
References
Examples
<build>
<pluginManagement>
<plugins>
<plugin>
...
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-packaging-plugin</artifactId>
<version>${tycho.version}</version>
<dependencies>
<dependency>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-buildtimestamp-jgit</artifactId>
<version>${tycho-extras.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-sourceref-jgit</artifactId>
<version>${tycho-extras.version}</version>
</dependency>
</dependencies>
<configuration>
<strictBinIncludes>false</strictBinIncludes>
<format>'v'yyyyMMdd-HHmm</format>
<timestampProvider>jgit</timestampProvider>
<!--jgit.ignore>
pom.xml
</jgit.ignore-->
<sourceReferences>
<generate>true</generate>
</sourceReferences>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
tycho-source-feature-plugin
Insert Brief Description
References
Examples
<build>
<pluginManagement>
<plugins>
<plugin>
...
</plugin>
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-source-feature-plugin</artifactId>
<version>${tycho-extras.version}</version>
</plugin>
</plugins>
</pluginManagement>
</build>
tycho-source-plugin
Insert Brief Description
References
Examples
|
|
tycho-surefire-plugin
Insert Brief Description
References
Examples
<build>
<pluginManagement>
<plugins>
<plugin>
...
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-surefire-plugin</artifactId>
<version>${tycho.version}</version>
</plugin>
</plugins>
</pluginManagement>
</build>