Class MirrorMojo

  • All Implemented Interfaces:
    org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo

    @Mojo(name="mirror")
    public class MirrorMojo
    extends org.apache.maven.plugin.AbstractMojo
    Maven plugin front-end for org.eclipse.equinox.p2.internal.repository.tools.MirrorApplication. Intended as a replacement for the p2.mirror ant task.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private boolean append
      Whether to append to an existing destination repository.
      private boolean compress
      Whether to compress the destination repository metadata files (artifacts.xml, content.xml).
      private boolean currentModuleAsSource
      Whether the current build p2 output should be added as source.
      private java.io.File destination
      The destination directory to mirror to.
      private java.util.Map<java.lang.String,​java.lang.String> filter
      Filter properties.
      private boolean followOnlyFilteredRequirements
      Follow only requirements which match the filter specified.
      private boolean followStrictOnly
      Set to true if only strict dependencies should be followed.
      private boolean ignoreErrors
      If set to true, mirroring continues to run in the event of an error during the mirroring process and will just log an info message.
      private boolean includeFeatures
      Whether or not to include features.
      private boolean includeNonGreedy
      Whether or not to follow non-greedy requirements.
      private boolean includeOptional
      Whether or not to follow optional requirements.
      private boolean includePacked
      Whether or not to include pack200 artifacts.
      private java.util.List<Iu> ius
      (Optional) Which IUs to mirror.
      private boolean keepNonXzIndexFiles
      If xzCompress is true, whether jar or xml index files should be kept in addition to XZ-compressed index files.
      private boolean latestVersionOnly
      Set to true to filter the resulting set of IUs to only include the latest version of each Installable Unit only.
      private boolean mirrorMetadataOnly
      Whether to mirror metadata only (no artifacts).
      private java.lang.String name
      The target repository name.
      private EquinoxServiceFactory p2  
      private org.apache.maven.project.MavenProject project  
      private java.util.Map<java.lang.String,​TychoProject> projectTypes  
      private RepositoryReferenceTool repositoryReferenceTool  
      private org.apache.maven.execution.MavenSession session  
      private java.util.List<Repository> source
      Source repositori(es) to mirror from.
      private boolean targetPlatformAsSource
      Whether to add the target-platform content as a source.
      private boolean xzCompress
      Add XZ-compressed repository index files.
      • Fields inherited from interface org.apache.maven.plugin.Mojo

        ROLE
    • Constructor Summary

      Constructors 
      Constructor Description
      MirrorMojo()  
    • Field Detail

      • project

        @Parameter(property="project",
                   readonly=true)
        private org.apache.maven.project.MavenProject project
      • session

        @Parameter(property="session",
                   readonly=true)
        private org.apache.maven.execution.MavenSession session
      • source

        @Parameter(required=false)
        private java.util.List<Repository> source
        Source repositori(es) to mirror from.
        See Also:
        and
      • destination

        @Parameter(defaultValue="${project.build.directory}/repository")
        private java.io.File destination
        The destination directory to mirror to.
      • name

        @Parameter
        private java.lang.String name
        The target repository name.
      • followStrictOnly

        @Parameter(defaultValue="false")
        private boolean followStrictOnly
        Set to true if only strict dependencies should be followed. A strict dependency is defined by a version range only including exactly one version (e.g. [1.0.0.v2009, 1.0.0.v2009]). In particular, plugins/features included in a feature are normally required via a strict dependency from the feature to the included plugin/feature.
      • includeFeatures

        @Parameter(defaultValue="true")
        private boolean includeFeatures
        Whether or not to include features.
      • includePacked

        @Parameter(defaultValue="true")
        private boolean includePacked
        Whether or not to include pack200 artifacts.
      • includeOptional

        @Parameter(defaultValue="true")
        private boolean includeOptional
        Whether or not to follow optional requirements.
      • includeNonGreedy

        @Parameter(defaultValue="true")
        private boolean includeNonGreedy
        Whether or not to follow non-greedy requirements.
      • filter

        @Parameter
        private java.util.Map<java.lang.String,​java.lang.String> filter
        Filter properties. In particular, a platform filter can be specified by using keys osgi.os, osgi.ws, osgi.arch.
      • followOnlyFilteredRequirements

        @Parameter(defaultValue="false")
        private boolean followOnlyFilteredRequirements
        Follow only requirements which match the filter specified.
      • latestVersionOnly

        @Parameter(defaultValue="false")
        private boolean latestVersionOnly
        Set to true to filter the resulting set of IUs to only include the latest version of each Installable Unit only. By default, all versions satisfying dependencies are included.
      • mirrorMetadataOnly

        @Parameter(defaultValue="false")
        private boolean mirrorMetadataOnly
        Whether to mirror metadata only (no artifacts).
      • compress

        @Parameter(defaultValue="true")
        private boolean compress
        Whether to compress the destination repository metadata files (artifacts.xml, content.xml).
      • append

        @Parameter(defaultValue="true")
        private boolean append
        Whether to append to an existing destination repository. Note that appending an IU which already exists in the destination repository will cause the mirror operation to fail.
      • xzCompress

        @Parameter(defaultValue="true")
        private boolean xzCompress

        Add XZ-compressed repository index files. XZ offers better compression ratios esp. for highly redundant file content.

        Since:
        0.25.0
      • keepNonXzIndexFiles

        @Parameter(defaultValue="true")
        private boolean keepNonXzIndexFiles

        If xzCompress is true, whether jar or xml index files should be kept in addition to XZ-compressed index files. This fallback provides backwards compatibility for pre-Mars p2 clients which cannot read XZ-compressed index files.

        Since:
        0.25.0
      • targetPlatformAsSource

        @Parameter(defaultValue="false")
        private boolean targetPlatformAsSource

        Whether to add the target-platform content as a source. Ignored for non-Tycho packaging types.

        Since:
        1.1.0
      • currentModuleAsSource

        @Parameter(defaultValue="true")
        private boolean currentModuleAsSource

        Whether the current build p2 output should be added as source. Ignored for non-Tycho packaging types. Ignored if targetPlatformAsSource == false;

        Since:
        1.1.0
      • ignoreErrors

        @Parameter(defaultValue="false")
        private boolean ignoreErrors

        If set to true, mirroring continues to run in the event of an error during the mirroring process and will just log an info message.

        Since:
        1.1.0
    • Constructor Detail

      • MirrorMojo

        public MirrorMojo()
    • Method Detail

      • execute

        public void execute()
                     throws org.apache.maven.plugin.MojoExecutionException,
                            org.apache.maven.plugin.MojoFailureException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
        org.apache.maven.plugin.MojoFailureException
      • createMirrorOptions

        private MirrorOptions createMirrorOptions()
      • createIUDescriptions

        private java.util.Collection<IUDescription> createIUDescriptions()