Class SetMojo

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

    @Mojo(name="set-version",
          aggregator=true,
          requiresDirectInvocation=true)
    public class SetMojo
    extends org.apache.maven.plugin.AbstractMojo

    Sets the version of the current project and child projects with the same version, and updates references as necessary.

    The set-version goal implements a version refactoring for a Tycho reactor: When updating the version of a project, it consistently updates the version strings in the project's configuration files (e.g. pom.xml and META-INF/MANIFEST.MF) and all references to that project (e.g. in a feature.xml).

    In many cases, the set-version goal changes the version of multiple projects or entities at once. In addition to the current project, child projects with the same version are also changed. The set of version changes is determined according to the following rules:

    • When the parent project of a project is changed and the project has the same version as the parent project, the project is also changed.
    • When an eclipse-plugin project is changed and the plugin exports a package with a version which is the same as the unqualified project version, the version of the package is also changed.
    • Require-Bundle and Fragment-Host Version Range in references to an eclipse-plugin that changed version will be updated:
      • if the newVersion becomes out of the original VersionRange
      • or if updateVersionRangeMatchingBounds is true and one of the bounds is matching the original version
    • When an eclipse-repository project is changed and a product file in the project has an equivalent version, the version in the product file is also changed.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.String artifacts
      Initial list of of projects to be changed.
      private VersionsEngine engine  
      private ProjectMetadataReader metadataReader  
      private java.lang.String newVersion
      The new version to set to the current project and other entities which have the same version as the current project.
      private java.lang.String properties
      Comma separated list of names of POM properties to set the new version to.
      private org.apache.maven.execution.MavenSession session  
      private boolean updateVersionRangeMatchingBounds
      When true bounds of OSGI version ranges referencing the version of an element that changed version will be updated to match the newVersion.
      • Fields inherited from interface org.apache.maven.plugin.Mojo

        ROLE
    • Constructor Summary

      Constructors 
      Constructor Description
      SetMojo()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void execute()  
      private static java.util.List<java.lang.String> split​(java.lang.String str)  
      • Methods inherited from class org.apache.maven.plugin.AbstractMojo

        getLog, getPluginContext, setLog, setPluginContext
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • newVersion

        @Parameter(property="newVersion",
                   required=true,
                   alias="developmentVersion")
        private java.lang.String newVersion

        The new version to set to the current project and other entities which have the same version as the current project.

      • artifacts

        @Parameter(property="artifacts",
                   defaultValue="${project.artifactId}")
        private java.lang.String artifacts

        Initial list of of projects to be changed. From these projects, the full list of projects to be changed is derived according to the rules described above. If set, this parameter needs to be specified as a comma separated list of artifactIds.

      • updateVersionRangeMatchingBounds

        @Parameter(property="updateVersionRangeMatchingBounds",
                   defaultValue="false")
        private boolean updateVersionRangeMatchingBounds

        When true bounds of OSGI version ranges referencing the version of an element that changed version will be updated to match the newVersion.

      • properties

        @Parameter(property="properties")
        private java.lang.String properties

        Comma separated list of names of POM properties to set the new version to. Note that properties are only changed in the projects explicitly listed by the artifacts parameter.

        Since:
        0.18.0
      • session

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

      • SetMojo

        public SetMojo()
    • 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
      • split

        private static java.util.List<java.lang.String> split​(java.lang.String str)