title: What is JUnit5 Platform Launcher exactly?
body: <p>JUnit 5 is modular.</p>
  <p>I understand that everything is based on <em>Platform Module</em> (<code>junit-platform-engine-1.3.2.jar</code>):</p>
  <p><em>Jupiter Module</em> (<em>API + engine parts</em>: <code>junit-jupiter-engine-5.3.2.jar</code> + <code>junit-jupiter-api-5.3.2.jar</code>) and</p>
  <p><em>Vintage Module</em> (<em>API + engine parts</em>: <code>junit-vintage-engine-5.3.2.jar</code> + <code>junit-4.12.jar</code> and <code>hamcrest-core-1.3.jar</code>) both use Platform Module as the basic one.</p>
  <p>But <strong>what is the Platform Launcher and when is it needed?</strong></p>
  <p>When and why may I need it and how to add it to <code>pom.xml</code>?</p>
  <p><a href="https://i.stack.imgur.com/MI0NQ.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/MI0NQ.png" alt="Junit" /></a>
  (picture is courtesy of this <a href="https://blog.codefx.org/design/architecture/junit-5-architecture-jupiter/" rel="nofollow noreferrer">link</a>)</p>
  <p>Adding Jupiter (for JUnit 5 tests only) and Vintage (for Junit4/Junit3 compatibility - to run legacy JUnit4 tests from JUnit5) to pom.xml is like this (just for future reference):</p>
  <pre><code>&lt;dependency&gt;
      &lt;groupId&gt;org.junit.jupiter&lt;/groupId&gt;
      &lt;artifactId&gt;junit-jupiter-engine&lt;/artifactId&gt;
      &lt;version&gt;5.3.2&lt;/version&gt;
      &lt;scope&gt;test&lt;/scope&gt;
  &lt;/dependency&gt;
  
  &lt;!-- Vintage Module to run JUnit4 from JUnit 5 --&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;org.junit.vintage&lt;/groupId&gt;
      &lt;artifactId&gt;junit-vintage-engine&lt;/artifactId&gt;
      &lt;version&gt;5.3.2&lt;/version&gt;
      &lt;scope&gt;test&lt;/scope&gt;
  &lt;/dependency&gt;
  </code></pre>