tycho-p2-director:director

Full name:

org.eclipse.tycho:tycho-p2-director-plugin:5.0.0-SNAPSHOT:director

Description:

Allows to run the director application to manage Eclipse Installations. This mojo can be used in two ways

  1. As a commandline invocation passing arguments as properties using mvn org.eclipse.tycho:tycho-p2-director-plugin:director -Ddestination=[target] ... -D...
  2. as an execution inside a pom
    <plugin>
       <groupId>org.eclipse.tycho</groupId>
       <artifactId>tycho-p2-director-plugin</artifactId>
       <version>${tycho-version}</version>
       <executions>
          <execution>
             <goals>
                <goal>director</goal>
             </goals>
             <phase>package</phase>
             <configuration>
                <destination>...</destination>
                ... other arguments ...
             </configuration>
          </execution>
       </executions>
    </plugin>
    

Attributes:

  • The goal is thread-safe and supports parallel builds.

Required Parameters

Name Type Since Description
<destination> File - The folder in which the targeted product is located.

Note: This applies special handling for macOS (p2os macosx) and behaves as follows:

  • If destination already conforms to the full app bundle layout (/path/to/Foo.app/Contents/Eclipse), destination is used as-is.
  • If destination points to the root of an app bundle (/path/to/Foo.app), Contents/Eclipse is appended and the path and /path/to/Foo.app/Contents/Eclipse is used.
  • Otherwise, i.e. if no app bundle path is given (/path/to/work), a valid app bundle path is appended, and the path /path/to/work/Eclipse.app/Contents/Eclipse is used.
This intentionally deviates from the stand-alone behavior of eclipse -application org.eclipse.equinox.p2.director in order to simplify cross-mojo workflows within Tycho (e.g. the same logic is applied by tycho-surefire-plugin:integration-test.
User Property: destination

Optional Parameters

Name Type Since Description
<artifactrepositories> String - comma separated list of URLs denoting artifact repositories.
User Property: artifactrepositories
Alias: artifactrepository
<bundlepool> File - The location where the plug-ins and features will be stored. Effective only when a new profile is created.
User Property: bundlepool
<downloadOnly> boolean - Only download the artifacts.
User Property: downloadOnly
<flavor> String - Defines what flavor to use for a newly created profile.
User Property: flavor
<followReferences> boolean - Follow repository references.
User Property: followReferences
<includeProjectRepository> boolean - If specified, the current project and its artifacts are included as part of the repository that is used to install units
<install> List<DirectorMojo$IU> - Alternative way to specify the IU to install in a more declarative (but also verbose) way, example:
<install>
   <iu>
      <id>...</id>
      <version>...optional version...</id>
      <feature>true/false</feature> <!-- optional if true .feature.group is automatically added to the id  -->
</install>
<installFeatures> boolean - No description.
Default: true
User Property: installFeatures
<installIUs> String - comma separated list of IUs to install, each entry in the list is in the form [ '/' ].
User Property: installIUs
Alias: installIU
<installSources> boolean - No description.
Default: false
<iuProfileproperties> File - Path to a properties file containing a list of IU profile properties to set.
User Property: iuProfileproperties
<list> boolean - Lists all IUs found in the given repositories. IUs can optionally be listed. Each entry in the list is in the form [ '/' ].
User Property: list
<listFormat> String - Formats the list of IUs according to the given string. Use ${property} for variable parts, e.g. ${org.eclipse.equinox.p2.name} for the IU's name. ID and version of an IU are available through ${id} and ${version}.
User Property: listFormat
<listInstalledRoots> boolean - Lists all root IUs found in the given profile. Each entry in the list is in the form [ '/' ].
User Property: listInstalledRoots
<listTags> boolean - List the tags available
User Property: listTags
<metadatarepositories> String - comma separated list of URLs denoting meta-data repositories
User Property: metadatarepositories
Alias: metadatarepository
<p2arch> String - The architecture to use when the profile is created.

If this is specified, p2os and p2ws must also be specified for consistency.

If none of them are specified, the values are derived from the running environment.


User Property: p2.arch
<p2nl> String - The language to use when the profile is created.
User Property: p2.nl
<p2os> String - The OS to use when the profile is created.

If this is specified, p2ws and p2arch must also be specified for consistency.

If none of them are specified, the values are derived from the running environment.


User Property: p2.os
<p2ws> String - The windowing system to use when the profile is created.

If this is specified, p2os and p2arch must also be specified for consistency.

If none of them are specified, the values are derived from the running environment.


User Property: p2.ws
<profile> String - Defines what profile to use for the actions.
Default: DefaultProfile
User Property: profile
<profileproperties> String - A list of properties in the form key=value pairs. Effective only when a new profile is created. For example org.eclipse.update.install.features=true to install the features into the product.
User Property: profileproperties
<properties> Map<String,String> - Additional profile properties to set when materializing the product
<purgeHistory> boolean - Remove the history of the profile registry.
User Property: purgeHistory
<repositories> String - comma separated list denoting co-located meta-data and artifact repositories
User Property: repositories
Alias: repository
<revert> String - comma separated list of numbers, revert the installation to a previous state. The number representing the previous state of the profile as found in p2/org.eclipse.equinox.p2.engine/ /.
User Property: revert
<roaming> boolean - Indicates that the product resulting from the installation can be moved. Effective only when a new profile is created.
User Property: roaming
<shared> String - Use a shared location for the install. The defaults to ${user.home}/.p2
User Property: shared
<tag> String - Tag the provisioning operation for easy referencing when reverting.
User Property: tag
<trustSignedContentOnly> boolean - Whether to trust each artifact only if it is jar-signed or PGP-signed.
User Property: trustSignedContentOnly
<trustedAuthorities> String - comma separated list of the authorities from which repository content, including repository metadata, is trusted. An empty value will reject all remote connections.
User Property: trustedAuthorities
<trustedCertificates> String - The SHA-256 'fingerprints' of unanchored certficates to trust as signers of artifacts. An empty value will reject all unanchored certificates.
User Property: trustedCertificates
<trustedPGPKeys> String - comma separated list of the fingerprints of PGP keys to trust as signers of artifacts. An empty value will reject all PGP keys.
User Property: trustedPGPKeys
<uninstall> List<DirectorMojo$IU> - Alternative way to specify the IU to uninstall in a more declarative (but also verbose) way, example:
<install>
   <iu>
      <id>...</id>
      <version>...optional version...</id>
      <feature>true/false</feature> <!-- optional if true .feature.group is automatically added to the id  -->
</install>
<uninstallIUs> String - comma separated list of IUs to install, each entry in the list is in the form [ '/' ].
User Property: uninstallIUs
Alias: uninstallIU
<verboseTrust> boolean - Whether to print detailed information about the content trust.
User Property: verboseTrust
<verifyOnly> boolean - Only verify that the actions can be performed. Don't actually install or remove anything.
User Property: verifyOnly

Parameter Details

<artifactrepositories>

comma separated list of URLs denoting artifact repositories.
  • Type: java.lang.String
  • Required: No
  • User Property: artifactrepositories
  • Alias: artifactrepository

<bundlepool>

The location where the plug-ins and features will be stored. Effective only when a new profile is created.
  • Type: java.io.File
  • Required: No
  • User Property: bundlepool

<destination>

The folder in which the targeted product is located.

Note: This applies special handling for macOS (p2os macosx) and behaves as follows:

  • If destination already conforms to the full app bundle layout (/path/to/Foo.app/Contents/Eclipse), destination is used as-is.
  • If destination points to the root of an app bundle (/path/to/Foo.app), Contents/Eclipse is appended and the path and /path/to/Foo.app/Contents/Eclipse is used.
  • Otherwise, i.e. if no app bundle path is given (/path/to/work), a valid app bundle path is appended, and the path /path/to/work/Eclipse.app/Contents/Eclipse is used.
This intentionally deviates from the stand-alone behavior of eclipse -application org.eclipse.equinox.p2.director in order to simplify cross-mojo workflows within Tycho (e.g. the same logic is applied by tycho-surefire-plugin:integration-test.
  • Type: java.io.File
  • Required: Yes
  • User Property: destination

<downloadOnly>

Only download the artifacts.
  • Type: boolean
  • Required: No
  • User Property: downloadOnly

<flavor>

Defines what flavor to use for a newly created profile.
  • Type: java.lang.String
  • Required: No
  • User Property: flavor

<followReferences>

Follow repository references.
  • Type: boolean
  • Required: No
  • User Property: followReferences

<includeProjectRepository>

If specified, the current project and its artifacts are included as part of the repository that is used to install units
  • Type: boolean
  • Required: No

<install>

Alternative way to specify the IU to install in a more declarative (but also verbose) way, example:
<install>
   <iu>
      <id>...</id>
      <version>...optional version...</id>
      <feature>true/false</feature> <!-- optional if true .feature.group is automatically added to the id  -->
</install>
  • Type: java.util.List<org.eclipse.tycho.plugins.p2.director.DirectorMojo$IU>
  • Required: No

<installFeatures>

No description.
  • Type: boolean
  • Required: No
  • User Property: installFeatures
  • Default: true

<installIUs>

comma separated list of IUs to install, each entry in the list is in the form [ '/' ].
  • Type: java.lang.String
  • Required: No
  • User Property: installIUs
  • Alias: installIU

<installSources>

No description.
  • Type: boolean
  • Required: No
  • Default: false

<iuProfileproperties>

Path to a properties file containing a list of IU profile properties to set.
  • Type: java.io.File
  • Required: No
  • User Property: iuProfileproperties

<list>

Lists all IUs found in the given repositories. IUs can optionally be listed. Each entry in the list is in the form [ '/' ].
  • Type: boolean
  • Required: No
  • User Property: list

<listFormat>

Formats the list of IUs according to the given string. Use ${property} for variable parts, e.g. ${org.eclipse.equinox.p2.name} for the IU's name. ID and version of an IU are available through ${id} and ${version}.
  • Type: java.lang.String
  • Required: No
  • User Property: listFormat

<listInstalledRoots>

Lists all root IUs found in the given profile. Each entry in the list is in the form [ '/' ].
  • Type: boolean
  • Required: No
  • User Property: listInstalledRoots

<listTags>

List the tags available
  • Type: boolean
  • Required: No
  • User Property: listTags

<metadatarepositories>

comma separated list of URLs denoting meta-data repositories
  • Type: java.lang.String
  • Required: No
  • User Property: metadatarepositories
  • Alias: metadatarepository

<p2arch>

The architecture to use when the profile is created.

If this is specified, p2os and p2ws must also be specified for consistency.

If none of them are specified, the values are derived from the running environment.

  • Type: java.lang.String
  • Required: No
  • User Property: p2.arch

<p2nl>

The language to use when the profile is created.
  • Type: java.lang.String
  • Required: No
  • User Property: p2.nl

<p2os>

The OS to use when the profile is created.

If this is specified, p2ws and p2arch must also be specified for consistency.

If none of them are specified, the values are derived from the running environment.

  • Type: java.lang.String
  • Required: No
  • User Property: p2.os

<p2ws>

The windowing system to use when the profile is created.

If this is specified, p2os and p2arch must also be specified for consistency.

If none of them are specified, the values are derived from the running environment.

  • Type: java.lang.String
  • Required: No
  • User Property: p2.ws

<profile>

Defines what profile to use for the actions.
  • Type: java.lang.String
  • Required: No
  • User Property: profile
  • Default: DefaultProfile

<profileproperties>

A list of properties in the form key=value pairs. Effective only when a new profile is created. For example org.eclipse.update.install.features=true to install the features into the product.
  • Type: java.lang.String
  • Required: No
  • User Property: profileproperties

<properties>

Additional profile properties to set when materializing the product
  • Type: java.util.Map<java.lang.String, java.lang.String>
  • Required: No

<purgeHistory>

Remove the history of the profile registry.
  • Type: boolean
  • Required: No
  • User Property: purgeHistory

<repositories>

comma separated list denoting co-located meta-data and artifact repositories
  • Type: java.lang.String
  • Required: No
  • User Property: repositories
  • Alias: repository

<revert>

comma separated list of numbers, revert the installation to a previous state. The number representing the previous state of the profile as found in p2/org.eclipse.equinox.p2.engine/ /.
  • Type: java.lang.String
  • Required: No
  • User Property: revert

<roaming>

Indicates that the product resulting from the installation can be moved. Effective only when a new profile is created.
  • Type: boolean
  • Required: No
  • User Property: roaming

<shared>

Use a shared location for the install. The defaults to ${user.home}/.p2
  • Type: java.lang.String
  • Required: No
  • User Property: shared

<tag>

Tag the provisioning operation for easy referencing when reverting.
  • Type: java.lang.String
  • Required: No
  • User Property: tag

<trustSignedContentOnly>

Whether to trust each artifact only if it is jar-signed or PGP-signed.
  • Type: boolean
  • Required: No
  • User Property: trustSignedContentOnly

<trustedAuthorities>

comma separated list of the authorities from which repository content, including repository metadata, is trusted. An empty value will reject all remote connections.
  • Type: java.lang.String
  • Required: No
  • User Property: trustedAuthorities

<trustedCertificates>

The SHA-256 'fingerprints' of unanchored certficates to trust as signers of artifacts. An empty value will reject all unanchored certificates.
  • Type: java.lang.String
  • Required: No
  • User Property: trustedCertificates

<trustedPGPKeys>

comma separated list of the fingerprints of PGP keys to trust as signers of artifacts. An empty value will reject all PGP keys.
  • Type: java.lang.String
  • Required: No
  • User Property: trustedPGPKeys

<uninstall>

Alternative way to specify the IU to uninstall in a more declarative (but also verbose) way, example:
<install>
   <iu>
      <id>...</id>
      <version>...optional version...</id>
      <feature>true/false</feature> <!-- optional if true .feature.group is automatically added to the id  -->
</install>
  • Type: java.util.List<org.eclipse.tycho.plugins.p2.director.DirectorMojo$IU>
  • Required: No

<uninstallIUs>

comma separated list of IUs to install, each entry in the list is in the form [ '/' ].
  • Type: java.lang.String
  • Required: No
  • User Property: uninstallIUs
  • Alias: uninstallIU

<verboseTrust>

Whether to print detailed information about the content trust.
  • Type: boolean
  • Required: No
  • User Property: verboseTrust

<verifyOnly>

Only verify that the actions can be performed. Don't actually install or remove anything.
  • Type: boolean
  • Required: No
  • User Property: verifyOnly