Building a binding out of tree

During binding development, when it hasn’t been submitted yet, personally i find it more convenient to develop it in its own directory, outside of the complete openhab-addons tree. Eclipse’s “Build project” menu item works completely fine, but sometimes i want to perform “full” Maven build from CLI, just to be sure that everything is OK. Additionally it appears to produce more warnings, so it can also be useful in this regard. But an attempt to do so causes:

Cannot find directory for project: org.openhab.addons:org.openhab.addons.reactor

I know why it happens, so my question is: is it still possible to run Maven build out of tree? Is it possible to specify an external path for “reactor”? Eclipse’s “Build project” function apparently somehow does just that, but i don’t know how.

I believe this comes from fact that you use in your project a <parent> coordinate of openhab addons reactor. This parent ships you bunch of dependencies and some pre-defined plugins. Some of them may fail due to that. Have a look which plugin gets called before above line gets emitted. See if it can be skipped or disabled via -D params ie. -DskipChecks.

If you wish to have a standalone binding then you need to use a separate parent and do your own dependency management like I did here: parent for connectorio addons, parent for connectorio-can binding 3.0.

1 Like

@splatch Thank you, i don’t have time right now but i’ll have a look.

Of course i am using because project structure prescribes to do so.

Over time my knowledge has improved; and i found a simple and efficient solution.

  <parent>
    <groupId>org.openhab.addons.bundles</groupId>
    <artifactId>org.openhab.addons.reactor.bundles</artifactId>
    <version>3.2.0</version>
    <!-- For standalone repo. Remove when integrating upsteam -->
    <relativePath>../openhab-addons/bundles</relativePath>
  </parent>

This assumes that projects and openhab-addons dir, which provides dependencies, are checked out side by side. It’s not a huge limitation.

2 Likes