Junit5: Introduce Maven BOM for JUnit Platform, Jupiter, and Vintage artifacts

Created on 18 Jun 2016  路  9Comments  路  Source: junit-team/junit5

Overview

To ease consumption of _JUnit 5_ artifacts, we should introduce a Maven _Bill Of Materials_ POM (search for BOM here) for all published Platform, Jupiter, and Vintage artifacts.

Proposed Maven Coordinates

  • Group ID: org.junit
  • Artifact ID: junit-bom
  • Version: 5.2.0

Related Issues

  • #146

Deliverables

  • [X] Introduce junit-bom Gradle project.

    • See the spring-framework-bom Gradle project from the Spring Framework for inspiration.

    • This is the actual POM generated by Spring's spring-framework-bom project.

  • [x] Add section to User Guide
  • [x] Publish junit-bom POM to Maven Central.

    • either along with the JUnit 5.2 GA release or afterwards

Jupiter Platform Vintage build enhancement

All 9 comments

Tentatively slated for 5.1 GA.

Note, however, that it would be perfectly fine to _publish_ a BOM for 5.1 GA artifacts _after_ 5.1 GA has been released. Ideally we would release the BOM at the same time, but it is technically not an absolute must.

Update:

I overhauled this issue's description and added deliverables.

The name of the BOM is up for debate, but I believe junit-bom is a suitable name since:

  1. JUnit never had a BOM before.
  2. The BOM has to include version information for artifacts from the Platform, Jupiter, _and_ Vintage.

So, I guess the main question is: _what should the Group ID of the BOM be_?

Spring's BOM is published as org.springframework:spring-framework-bom:5.0.3.RELEASE.

So I'm thinking JUnit's BOM should be published as org.junit:junit-bom:5.1.0.

@junit-team/junit-lambda, thoughts?

FYI: I added a _Proposed Maven Coordinates_ section to this issue's description.

_in progress_

I've added a junit-bom subproject that generates a POM with a <dependencyManagement/> block in b8b0753bfcaccb2231b43edead4b392cd25916e8. However, the junit-platform-surefire-provider needs to be declared in the <dependencies/> block of the maven-surefire-plugin. There, the <dependencyManagement/> block is not taken into account. We could add a <pluginManagement/> block and configure the maven-surefire-plugin with our provider and both engines as dependencies. However, I'm not sure if declaring the plugin and overriding its dependencies would then still be possible. Thus, I'm postponing this task for further discussion and experimentation until after 5.1 GA is released.

I've added a junit-bom subproject that generates a POM with a <dependencyManagement/> block in b8b0753bfcaccb2231b43edead4b392cd25916e8.

Thanks! 馃憤

Thus, I'm postponing this task for further discussion and experimentation until after 5.1 GA is released.

SGTM

Was this page helpful?
0 / 5 - 0 ratings