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 <ralph.go...@dslextreme.com> 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ı <vol...@yazi.ci> 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