Distribution, Maven Project Structure, karaf packaging


My goal is to understand about maven and karaf OH integration, without entering into details.
However, I want here to ask about details, but I expect answer about underlaid principles.

Just now, to understand “by the practice” about the behavior of the building process, I changed names of features, files, and directories. It’s OK, it builds, it runs.

My questions refer to the following picture (my new names are not far of the original ones)

1: distro + distro-kar
Why this structure is needed, rather than directly include the “distro” dependencies into “distro-kar” ?

2: Embedding “addons-aggr” into the “tar.gz” installable file
Why / How “distro-kar” is embedded in the “tar.gz” installable file, in


while “addons-aggr” is not ?

What I would have to try is to configure
git/oh-pom-main/oh-pom-distr/oh-openhab/src/main/resources/conf/services/addons.cfg like that :

package = standard
remote = false
legacy = false

As result, in karaf console, all packages are visible, but unloadable, while the core system is well available, loaded and running.

3: Including oh-addons feature directly in oh-distro-kar
How can I
a) include the features defined in the oh-addons in the features of the oh-distro
b) include the dependency of oh-addons in the oh-distro-kar
I experiment difficulties to resolve missing references, in both cases.
I think that answering this question will be very helpful for my comprehension

4: overrides
What is this feature ?

5: online-repo
What is this feature ?

6: modules structure
Why / what is the idea under this project/build organization

I would be happy if somebody can give me some clue and a some track to follow about how I can quickly understand the whole principle, just by indicated me where things are done and/or defined.
Answering in few words to my questions seems to me enough to put me on good ways.
(HOPING) :smiley: