Tycho Buildtimestamp SVN

Introduction

When I program a piece of software that is more than just test and throw away, I use continuous integration. I put the source code in my subversion and let Jenkins build it all for me. Most of the time I am building Eclipse bundles, either it’s a plugin for the Eclipse IDE or a RCP or a simple jar as a bundle, just in case. Since the “Create Ant Build File” option is only a snapshot of the current settings for the build using an Ant script and you have to reclick that button every time you change some settings in the project, it’s not my preferred way of building plugins. For a long time I used Buckminster for building plugins, update sites and products. I like it because it uses the same settings and builders as the Eclipse IDE. But when the update site of the Subversion plugin for Buckminster was down for a while, I had a look at Maven/Tycho. As a result all new projects I start are Maven/Tycho builds. It also uses the settings of the Eclipse IDE, but it is much easier to add new additional headless builders.

Versions

One thing that is different between normal Maven builds and Eclipse bundles is the versioning. With Maven normally you build SNAPSHOTs and at some points in time a release. This results in versions looks like:

Eclipse bundles get versions like 1.0.0.qualifier and this qualifier is replaced during build with something. This something could be a counter for every build, or what I like more the timestamp of the last commit in the source code management.

Problem is I am using Subversion. I found a project on GitHub, but it was not released anywhere, so I had to build it myself and install it locally. And if you don’t want to use a svn.ignore you got a nice NullPointerException. So I forked it, corrected the bug and published it on sonatype. It’s called tycho_buildtimestamp_svn and the configuration looks like the following:

Meta

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.