Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Tycho/Additional Tools

The Tycho project provides additional tools that may be useful when working with Tycho.

tycho-p2-extras-plugin

The mirror goal of the tycho-p2-extras-plugin copies installable units (plus their corresponding artifacts) from one or more p2 repositories into the build directory. This goal is available since version 0.13.0.

Example usage:

Mirror the org.eclipse.rcp feature from the Indigo p2 repository to target/repository. Filter the platfrom-specific fragments to only include linux/gtk/x86_64 os/ws/arch.

	<build>
		<plugins>
			<plugin>
				<groupId>org.eclipse.tycho.extras</groupId>
				<artifactId>tycho-p2-extras-plugin</artifactId>
				<version>${tycho-version}</version>
				<executions>
					<execution>
						<phase>prepare-package</phase>
						<goals>
							<goal>mirror</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<source>
						<!-- source repositori(es) to mirror from -->
						<repository>
							<url>http://download.eclipse.org/releases/indigo/</url>
							<layout>p2</layout>
						</repository>
					</source>

					<!-- starting from here all configuration parameters are optional -->

					<!-- List of IUs to mirror. If omitted, allIUs will be mirrored. -->
					<!-- Omitted IU version element means latest version of the IU -->
					<ius>
						<iu>
							<id>org.eclipse.rcp.feature.group</id>
						</iu>
					</ius>
					<!-- The destination directory to mirror to. -->
					<destination>${project.build.directory}/repository</destination>
					<!-- Whether only strict dependencies should be followed. -->
					<!-- "strict" means perfect version match -->
					<followStrictOnly>false</followStrictOnly>
					<!-- Whether or not to follow optional requirements. -->
					<includeOptional>true</includeOptional>
					<!-- Whether or not to follow non-greedy requirements. -->
					<includeNonGreedy>true</includeNonGreedy>
					<!-- filter properties. E.g. filter only one platform -->
					<filter>
						<osgi.os>linux</osgi.os>
						<osgi.ws>gtk</osgi.ws>
						<osgi.arch>x86_64</osgi.arch>
					</filter>
					<!-- Whether to filter the resulting set of IUs to only -->
					<!-- include the latest version of each IU -->
					<latestVersionOnly>false</latestVersionOnly>
					<!-- don't mirror artifacts, only metadata -->
					<mirrorMetadataOnly>false</mirrorMetadataOnly>
					<!-- whether to compress the target repo -->
					<compress>true</compress>
					<!-- whether to append to the target repo content -->
					<append>true</append>
				</configuration>
			</plugin>
		</plugins>
	</build>

The mojo has the same parameters as the p2.mirror ant task

Back to the top