Missing requirement commons.io when using 3rd party jar

Hi all. Recently I am trying to use a 3rd party jar A to develop my binding. The problem is on the package commons.io. First I didn’t add A as a dependency and generate my binding. The MANIFEST is good. Also I can test it using bndtools. I found that during the build, openHAB will download 4 versions of commons.io.


That is, version 2.4, 2.6 and 1.4. Then it can be tested using bndrun smoothly. Then, I add my 3rd party jar as dependencies like the following:

One thing to note that is in the pom file of this jar dependency, it also uses commons-io as dependencies.

I think the version is exactly one that openHAB has downloaded. But when I executed

mvn clean install

I found in the generate bundle’s MANIFEST.MF. One line has been added, which never shows before.

Import-Package:org.apache.commons.io;version="[1.4, 2)"

Also there are many other imported packages and I only show this. Because it causes the following bnd resolution error.

How would that happen? Why does the version constriant of commons.io become [1.4, 2)? And how to solve it?

You can run mvn dependency:tree -pl :org.openhab.binding.mylogger to see where the depencies of apache commons io come from.