Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[tycho-user] tycho-versions-plugin:set-version only modifies features, not plugins

Hello, tycho-user list members

 

We have an Eclipse application that consists of hundreds of plugins grouped into a number of features. Tycho is used to build an update site that provides all features. To make the development easier, all plugins have version 1.0.0 in manifests and all dependencies on our plugins have version 0.0.0.

 

I want to automatically set version to all plugins and features during every build, so that instead of version 1.0.0 they appear on the update site as having some meaningful version, say, 3.14.${buildNumber} (buildNumber property is passed as a maven command line argument). This will be done only on a build server (developers can switch off the plugin execution using maven profile). I tried to use tycho-versions-plugin to achieve that by adding these lines to the master pom:

<plugin>

     <groupId>org.eclipse.tycho</groupId>

     <artifactId>tycho-versions-plugin</artifactId>

     <version>${tycho.version}</version>

     <executions>

          <execution>

                <configuration>

                     <newVersion>3.14.${buildNumber}</newVersion>

                </configuration>

                <goals>

                     <goal>set-version</goal>

                </goals>

                <id>set-version-all</id>

                <phase>validate</phase>

          </execution>

          <execution>

               <configuration>

                    <newVersion>1.0.0-SNAPSHOT</newVersion>

                </configuration>

                <inherited>false</inherited>

                <goals>

                     <goal>set-version</goal>

                </goals>

                <id>restore-version-master</id>

                <phase>validate</phase>

          </execution>

     </executions>

</plugin>

2nd execution was required because the first one doesn’t replace parent version in child poms. Master pom doesn’t go to the update site, so it’s ok to restore it to 1.0.0-SNAPSHOT.

This code is being run on a build server, where poms and manifests get rewritten with the latest version from SVN before every build anyway, so I can pollute them by calling tycho-versions-plugin.

 

Here is what I get in the log for a typical plugin:

build 29-jan-2014 13:17:21 [INFO] ------------------------------------------------------------------------

build 29-jan-2014 13:17:21 [INFO] Building com.mycompany.myplugin 1.0.0

build 29-jan-2014 13:17:21 [INFO] ------------------------------------------------------------------------

build 29-jan-2014 13:17:21 [INFO]

build 29-jan-2014 13:17:21 [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ com.mycompany.myplugin ---

build 29-jan-2014 13:17:21 [INFO] Deleting C:\<SVN_ROOT>\build\com.mycompany.myplugin

build 29-jan-2014 13:17:21 [INFO]

build 29-jan-2014 13:17:21 [INFO] --- tycho-packaging-plugin:0.19.0:build-qualifier (default-build-qualifier) @ com.mycompany.myplugin ---

build 29-jan-2014 13:17:21 [INFO] The project's OSGi version is 1.0.0

build 29-jan-2014 13:17:21 [INFO]

build 29-jan-2014 13:17:21 [INFO] --- tycho-packaging-plugin:0.19.0:validate-id (default-validate-id) @ com.mycompany.myplugin ---

build 29-jan-2014 13:17:21 [INFO]

build 29-jan-2014 13:17:21 [INFO] --- tycho-packaging-plugin:0.19.0:validate-version (default-validate-version) @ com.mycompany.myplugin ---

build 29-jan-2014 13:17:21 [INFO]

build 29-jan-2014 13:17:21 [INFO] --- tycho-versions-plugin:0.19.0:set-version (set-version-all) @ com.mycompany.myplugin ---

build 29-jan-2014 13:17:21 [INFO] Making changes in C:\<SVN_ROOT>\plugins\com.mycompany.myplugin

build 29-jan-2014 13:17:21 [INFO]   pom.xml//project/version: 1.0.0 => 3.14.171

build 29-jan-2014 13:17:21 [INFO]   META-INF/MANIFEST.MF//Bundle-Version: 1.0.0 => 3.14.171

build 29-jan-2014 13:17:21 [INFO]   META-INF/MANIFEST.MF//Export-Package//version: 1.0.0 => 3.14.171

build 29-jan-2014 13:17:21 [INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ com.mycompany.myplugin ---

build 29-jan-2014 13:17:21 [INFO]

build 29-jan-2014 13:17:21 [INFO] --- tycho-compiler-plugin:0.19.0:compile (default-compile) @ com.mycompany.myplugin ---

build 29-jan-2014 13:17:21 [INFO] Compiling 2 source files to C:\<SVN_ROOT>\build\com.mycompany.myplugin\classes

build 29-jan-2014 13:17:22 [INFO]

build 29-jan-2014 13:17:22 [INFO] --- maven-resources-plugin:2.4.3:testResources (default-testResources) @ com.mycompany.myplugin ---

build 29-jan-2014 13:17:22 [INFO]

build 29-jan-2014 13:17:22 [INFO] --- tycho-packaging-plugin:0.19.0:package-plugin (default-package-plugin) @ com.mycompany.myplugin ---

build 29-jan-2014 13:17:22 [INFO] Building jar: C:\<SVN_ROOT>\build\com.mycompany.myplugin\com.mycompany.myplugin-1.0.0.jar

build 29-jan-2014 13:17:22 [INFO]

build 29-jan-2014 13:17:22 [INFO] --- tycho-p2-plugin:0.19.0:p2-metadata-default (default-p2-metadata-default) @ com.mycompany.myplugin ---

build 29-jan-2014 13:17:22 [INFO]

build 29-jan-2014 13:17:22 [INFO] --- maven-jarsigner-plugin:1.3.1:sign (sign) @ com.mycompany.myplugin ---

build 29-jan-2014 13:17:22 [INFO] 1 archive(s) processed

build 29-jan-2014 13:17:22 [INFO]                                                                        

This results in com.mycompany.myplugin-1.0.0.jar with version 1.0.0 in the manifest.

 

But for all features the version gets changed!

build 29-jan-2014 13:17:26 [INFO] ------------------------------------------------------------------------

build 29-jan-2014 13:17:26 [INFO] Building com.mycompany.myfeature 1.0.0

build 29-jan-2014 13:17:26 [INFO] ------------------------------------------------------------------------

build 29-jan-2014 13:17:26 [INFO]

build 29-jan-2014 13:17:26 [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ com.mycompany.myfeature ---

build 29-jan-2014 13:17:26 [INFO] Deleting C:\<SVN_ROOT>\build\com.mycompany.myfeature

build 29-jan-2014 13:17:26 [INFO]

build 29-jan-2014 13:17:26 [INFO] --- tycho-packaging-plugin:0.19.0:build-qualifier-aggregator (default-build-qualifier-aggregator) @ com.mycompany.myfeature ---

build 29-jan-2014 13:17:26 [INFO] The project's OSGi version is 1.0.0

build 29-jan-2014 13:17:26 [INFO]

build 29-jan-2014 13:17:26 [INFO] --- tycho-packaging-plugin:0.19.0:validate-id (default-validate-id) @ com.mycompany.myfeature ---

build 29-jan-2014 13:17:26 [INFO]

build 29-jan-2014 13:17:26 [INFO] --- tycho-packaging-plugin:0.19.0:validate-version (default-validate-version) @ com.mycompany.myfeature ---

build 29-jan-2014 13:17:26 [INFO]

build 29-jan-2014 13:17:26 [INFO] --- tycho-versions-plugin:0.19.0:set-version (set-version-all) @ com.mycompany.myfeature ---

build 29-jan-2014 13:17:26 [INFO] Making changes in C:\<SVN_ROOT>\features\com.mycompany.myfeature

build 29-jan-2014 13:17:26 [INFO]   pom.xml//project/version: 1.0.0 => 3.14.171

build 29-jan-2014 13:17:26 [INFO]   feature.xml//feature/@version: 1.0.0 => 3.14.171

build 29-jan-2014 13:17:26 [INFO]

build 29-jan-2014 13:17:26 [INFO] --- tycho-packaging-plugin:0.19.0:package-feature (default-package-feature) @ com.mycompany.myfeature ---

build 29-jan-2014 13:17:26 [INFO] Building jar: C:\<SVN_ROOT>\build\com.mycompany.myfeature\com.mycompany.myfeature-1.0.0.jar

build 29-jan-2014 13:17:26 [INFO]

build 29-jan-2014 13:17:26 [INFO] --- tycho-p2-plugin:0.19.0:p2-metadata-default (default-p2-metadata-default) @ com.mycompany.myfeature ---

build 29-jan-2014 13:17:26 [INFO]

build 29-jan-2014 13:17:26 [INFO] --- tycho-p2-plugin:0.19.0:feature-p2-metadata (default-feature-p2-metadata) @ com.mycompany.myfeature ---

build 29-jan-2014 13:17:26 [INFO]

build 29-jan-2014 13:17:26 [INFO] --- maven-jarsigner-plugin:1.3.1:sign (sign) @ com.mycompany.myfeature ---

build 29-jan-2014 13:17:26 [INFO] 1 archive(s) processed

This results in com.mycompany.myfeature-3.14.171.jar (though the log says it is 1.0.0) with version 3.14.171 in the manifest.

 

As a result, tycho-versions-plugin updates the versions in all required files, but for some reason this has no impact on plugins, only feature versions really get updated. How can I update plugin versions too? Or maybe I’m doing something conceptually wrong?

 

As far as I know, tycho-packaging-plugin can only set the qualifier. We can change plugin versions in manifests to 1.0.0.qualifier, but we don’t really want to change them after every release to 3.14.qualifier, then 3.15… and so on. I have also tried to call tycho-packaging-plugin:build-qualifier after calling tycho-versions-plugin:set-version, but the result was exactly the same (only feature versions were updated).

 

Any help will be appreciated.

 

Thank you

 

Nikolay Glazyrin


Back to the top