Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is an OSGI version qualifier

I need to confirm what I suspect as I cannot find any documentation on it, so this would appear a silly question, and since I am a learner at eclipse PDE.

Initially,

I had a parent project pom of an eclipse plugin project with

<version>1.1.0-SNAPSHOT</version>

with two child projects, with both their poms referring to the parent pom as version 1.1.0-SNAPSHOT.

I was able to build the projects successfully and had a site which I use to install the plugin into eclipse.

Then, I wanted my personal temp version called 1.1.1-mine. So I modified the three poms to 1.1.1-mine

I also updated the META-INF/MANIFEST.MF and feature.xml from

0.13.0.qualifier

to

0.13.1.qualifier

However, the build encountered the following error.

[ERROR] Failed to execute goal org.eclipse.tycho:tycho-packaging-plugin:0.15.0:validate-version (default-validate-version) on project org.sonatype.m2e.subclipse: OSGi version 1.1.1.qualifier in META-INF/MANIFEST.MF does not match Maven version 1.1.1-mine in pom.xml

Does qualifier have to be a maven version keyword? Because, the build proceeded without error after I changed mine to SNAPSHOT in the poms.

If not, what did I do wrong?

What can I do to allow me to have version 1.1.1-mine?

like image 719
Blessed Geek Avatar asked Jan 21 '14 11:01

Blessed Geek


1 Answers

In a nutshell, OSGi .qualifier means the same thing as -SNAPSHOT.

Since OSGi doesn't allow for more than 3 numbers in a version (+ qualifier), creating a -mine version is a bit tricky.

According to the FAQ, you can tell Tycho a string that it should be use to replace qualifier with:

 mvn -DforceContextQualifier=mine 

Note that this disables all the goodness you get from SNAPSHOT versions (namely that you can deploy the bundle several times).

like image 59
Aaron Digulla Avatar answered Oct 14 '22 17:10

Aaron Digulla