anchor.diff:  [#runnable-jar-with-lib]
   === Runnable Jar with "lib" Folder
   
  -"Jar-with-dependencies" packaging described above is very convenient. It produces a single file that is easy to move
  -around and execute. It is not without its downsides though:
  +"Jar-with-dependencies" packaging described above is extremely convenient. It produces a single file that is easy to move
  +around and execute. It is not without downsides though:
   
   * It is incompatible with Java Platform Module System (JPMS). Java allows only one `module-info.class` file per `.jar`.
  -So if your app or its dependencies contain one or more of those module descriptor files, `maven-shade-plugin` won't be
  +So if your app or its dependencies contain one or more of those module descriptors, `maven-shade-plugin` won't be
   able to package them properly.
  -* It is incompatible with multi-release jar files. Actually there's no reason why `maven-shade-plugin` can't
  -repackage such jars correctly, but as of this writing (plugin version 3.2.1) it doesn't, losing Java version-specific
  -code.
  +* It is incompatible with https://openjdk.java.net/jeps/238[multi-release jar files]. Actually there's no technical
  +reason why `maven-shade-plugin` can't repackage such jars correctly, but as of this writing (plugin version 3.2.1) it
  +doesn't, losing Java version-specific code.
   
   An alternative way of packaging that does not have these limitations is a folder with a runnable application
   jar at the root level and all dependency jars in the `lib/` folder next to it:
  
positive.code: </plugin>
  ----
  
  Either way, once your pom is configured, you can assemble and run your jar. E.g.:
  
  [source,bash]
  ----
  
negative.code: 
  == Part IV. Assembly and Deployment
  
  This chapter discusses how to package Bootique apps for deployment/distribution and how to run them. We are going to
  present two approaches that produce cross-platform runnable applications -
  "<<runnable-jar-with-dependencies,Runnable Jar with Dependencies>>" and
  "<<runnable-jar-with-lib,Runnable Jar with "lib" Folder>>". They only differ in how dependencies are packaged and
  referenced.
  
  Ultimately any Bootique app is just a Java app with a `main(..)` method and hence can be executed
  using `java` command. With that understanding you can come up with your own custom packaging strategies.
  
  [#runnable-jar-with-dependencies]
  === Runnable Jar with Dependencies
  
  Under this approach application classes, resources and all classes and resources from dependency jars are packaged in
  a single "fat" runnable jar. In Maven this can be accomplished with `maven-shade-plugin`. To simplify plugin
  configuration, your app `pom.xml` may inherit from `bootique-parent` pom. Then configuration would look like this:
  
  [source,xml,subs="attributes"]
  ----
  