File size: 6,058 Bytes
2795186
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
[[appendix]]
== Appendix

[[reproducible-builds]]
=== Reproducible Builds

Starting with version 5.7, JUnit 5 aims for its non-javadoc JARs to be
https://reproducible-builds.org/[reproducible].

Under identical build conditions, such as Java version, repeated builds should provide the
same output byte-for-byte.

This means that anyone can reproduce the build conditions of the artifacts on Maven
Central/Sonatype and produce the same output artifact locally, confirming that the
artifacts in the repositories were actually generated from this source code.

[[dependency-metadata]]
=== Dependency Metadata

Artifacts for final releases and milestones are deployed to {Maven_Central}, and snapshot
artifacts are deployed to Sonatype's {snapshot-repo}[snapshots repository] under
{snapshot-repo}/org/junit/[/org/junit].

[[dependency-metadata-junit-platform]]
==== JUnit Platform

* *Group ID*: `org.junit.platform`
* *Version*: `{platform-version}`
* *Artifact IDs*:
  `junit-platform-commons`::
    Common APIs and support utilities for the JUnit Platform. Any API annotated with
    `@API(status = INTERNAL)` is intended solely for usage within the JUnit framework
    itself. _Any usage of internal APIs by external parties is not supported!_
  `junit-platform-console`::
    Support for discovering and executing tests on the JUnit Platform from the console.
    See <<running-tests-console-launcher>> for details.
  `junit-platform-console-standalone`::
    An executable JAR with all dependencies included is provided in Maven Central under the
    https://repo1.maven.org/maven2/org/junit/platform/junit-platform-console-standalone[junit-platform-console-standalone]
    directory. See <<running-tests-console-launcher>> for details.
  `junit-platform-engine`::
    Public API for test engines. See <<launcher-api-engines-custom>> for details.
  `junit-platform-jfr`::
    Provides a `LauncherDiscoveryListener` and `TestExecutionListener` for Java Flight
	Recorder events on the JUnit Platform. See <<running-tests-listeners-flight-recorder>>
	for details.
  `junit-platform-launcher`::
    Public API for configuring and launching test plans -- typically used by IDEs and
    build tools. See <<launcher-api>> for details.
  `junit-platform-reporting`::
    `TestExecutionListener` implementations that generate test reports -- typically used
    by IDEs and build tools. See <<junit-platform-reporting>> for details.
  `junit-platform-runner`::
    Runner for executing tests and test suites on the JUnit Platform in a JUnit 4
    environment. See <<running-tests-junit-platform-runner>> for details.
  `junit-platform-suite`::
    JUnit Platform Suite artifact that transitively pulls in dependencies on
    `junit-platform-suite-api` and `junit-platform-suite-engine` for simplified dependency
	management in build tools such as Gradle and Maven.
  `junit-platform-suite-api`::
    Annotations for configuring test suites on the JUnit Platform. Supported by the
    <<junit-platform-suite-engine, JUnit Platform Suite Engine>> and the
    <<running-tests-junit-platform-runner, JUnitPlatform runner>>.
  `junit-platform-suite-commons`::
    Common support utilities for executing test suites on the JUnit Platform.
  `junit-platform-suite-engine`::
    Engine that executes test suites on the JUnit Platform; only required at runtime. See
    <<junit-platform-suite-engine,JUnit Platform Suite Engine>> for details.
  `junit-platform-testkit`::
     Provides support for executing a test plan for a given `TestEngine` and then
     accessing the results via a fluent API to verify the expected results.

[[dependency-metadata-junit-jupiter]]
==== JUnit Jupiter

* *Group ID*: `org.junit.jupiter`
* *Version*: `{jupiter-version}`
* *Artifact IDs*:
  `junit-jupiter`::
    JUnit Jupiter aggregator artifact that transitively pulls in dependencies on
    `junit-jupiter-api`, `junit-jupiter-params`, and `junit-jupiter-engine` for
    simplified dependency management in build tools such as Gradle and Maven.
  `junit-jupiter-api`::
    JUnit Jupiter API for <<writing-tests,writing tests>> and <<extensions,extensions>>.
  `junit-jupiter-engine`::
    JUnit Jupiter test engine implementation; only required at runtime.
  `junit-jupiter-params`::
    Support for <<writing-tests-parameterized-tests,parameterized tests>> in JUnit Jupiter.
  `junit-jupiter-migrationsupport`::
    Support for migrating from JUnit 4 to JUnit Jupiter; only required for support for
    JUnit 4's `@Ignore` annotation and for running selected JUnit 4 rules.

[[dependency-metadata-junit-vintage]]
==== JUnit Vintage

* *Group ID*: `org.junit.vintage`
* *Version*: `{vintage-version}`
* *Artifact ID*:
  `junit-vintage-engine`::
    JUnit Vintage test engine implementation that allows one to run _vintage_ JUnit tests
    on the JUnit Platform. _Vintage_ tests include those written using JUnit 3 or JUnit 4
    APIs or tests written using testing frameworks built on those APIs.

[[dependency-metadata-junit-bom]]
==== Bill of Materials (BOM)

The _Bill of Materials_ POM provided under the following Maven coordinates can be used to
ease dependency management when referencing multiple of the above artifacts using
https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies[Maven]
or https://docs.gradle.org/current/userguide/platforms.html#sub:bom_import[Gradle].

* *Group ID*: `org.junit`
* *Artifact ID*: `junit-bom`
* *Version*: `{bom-version}`

[[dependency-metadata-dependencies]]
==== Dependencies

Most of the above artifacts have a dependency in their published Maven POMs on the
following _@API Guardian_ JAR.

* *Group ID*: `org.apiguardian`
* *Artifact ID*: `apiguardian-api`
* *Version*: `{apiguardian-version}`

In addition, most of the above artifacts have a direct or transitive dependency on the
following _OpenTest4J_ JAR.

* *Group ID*: `org.opentest4j`
* *Artifact ID*: `opentest4j`
* *Version*: `{ota4j-version}`

[[dependency-diagram]]
=== Dependency Diagram

image::{componentDiagramFile}[]