citrusframework / citrus

Framework for automated integration tests with focus on messaging integration
https://citrusframework.org
Apache License 2.0
456 stars 134 forks source link

citrus-bom is not a standalone BOM #887

Closed boskoop closed 1 year ago

boskoop commented 2 years ago

The maven artifact com.consol.citrus:citrus-bom is a child-pom of citrus-catalog and the citrus "root"-pom. Since the com.consol.citrus:citrus pom manages all dependencies for citrus, they are inherited to the citrus-bom artefact. As a result, importing the citrus-bom imports a bunch of other dependencies into a project:

            <dependency>
                <groupId>com.consol.citrus</groupId>
                <artifactId>citrus-bom</artifactId>
                <version>3.3.0</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>

Have a look at the "Managed Dependencies" section in https://mvnrepository.com/artifact/com.consol.citrus/citrus-bom/3.3.0, which manages versions for spring, jetty, a bunch of apache projects and many other projects. When importing the citrus-bom, I only want it to manage citrus artifacts, because otherwise, updating citrus could have unwanted side effects for my project, which are not obvious.

As a solution, the citrus-bom artifact should be built outside the maven multimodule-hierarchy of citrus. As a reference, have a look at the junit-bom: https://mvnrepository.com/artifact/org.junit/junit-bom/5.9.0

boskoop commented 1 year ago

Thanks! 🎉