It worked, but I had to specify where the parent pom was in the submodules. Are 
you saying I could get the same effect by importing the bom in the parent pom? 
If so, that certainly seems easier.

—
Matt Sicker

> On May 28, 2022, at 18:15, Ralph Goers <[email protected]> wrote:
> 
> Why is this necessary? I would think having the parent import the 
> bom/pom.xml should be enough.
> 
> Ralph
> 
>> On May 27, 2022, at 6:18 PM, Matt Sicker <[email protected]> wrote:
>> 
>> To avoid rearranging all the directories, I'm moving the parent pom to
>> its own directory, moving the bom pom to the root, and updating the
>> rest of the poms to know where the old parent pom now is.
>> 
>>> On Thu, May 19, 2022 at 3:08 PM Matt Sicker <[email protected]> wrote:
>>> 
>>> Agreed. I added the BOM POM later on and didn’t know of any established 
>>> patterns for modules as BOMs weren’t used extensively quite yet at the time 
>>> (and it was a Maven specific feature then, too; Spring ported the concept 
>>> to Gradle later on, and now Gradle has a native concept of the same thing).
>>> 
>>> —
>>> Matt Sicker
>>> 
>>>> On May 19, 2022, at 10:33, Ralph Goers <[email protected]> wrote:
>>> 
>>> Yes, that would make sense. I am sure this happened simply because the bom 
>>> pom.xml was introduced way after the first releases.
>>> 
>>> Ralph
>>> 
>>>> On May 18, 2022, at 11:38 PM, Volkan Yazıcı <[email protected]> wrote:
>>> 
>>> 
>>> Even though we provide a BOM module (`log4j-bom`), we don't consume it
>>> 
>>> ourselves. Hence occasionally we end up publishing artifacts not included
>>> 
>>> in the BOM. Consuming our own BOM decreases the chances of missing out
>>> 
>>> artifacts in BOM, though doesn't totally eliminate the chances of that
>>> 
>>> happening.
>>> 
>>> 
>>> When I read how Maven advises to structure the BOM module
>>> 
>>> <https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#bill-of-materials-bom-poms>,
>>> 
>>> I understand what needs to be in the case of Log4j is the following:
>>> 
>>> 
>>> /pom.xml (`log4j-bom` module)
>>> 
>>> /log4j-parent/pom.xml (`log4j` module importing `log4j-bom`)
>>> 
>>> /log4j-parent/log4j-core/pom.xml (`log4j-core` module parented by `log4j`)
>>> 
>>> 
>>> Though what we have in reality is the following:
>>> 
>>> 
>>> /log4j-bom/pom.xml (`log4j-bom` module)
>>> 
>>> /pom.xml (`log4j` module parented by `logging-parent`)
>>> 
>>> /log4j-core/pom.xml (`log4j-core` module parented by `log4j`)
>>> 
>>> 
>>> Ideally we should follow the Maven-advised approach and consume from our
>>> 
>>> BOM parented by `logging-parent`.
>>> 
>>> 
>>> What do you think? Is my interpretation of the Maven-advised approach
>>> 
>>> correct?
>>> 
>>> 
> 

Reply via email to