Closed
Description
Following on from #12545 we'd like to enhance our fat jar format to support layer folders that are easier to use when writing Dockerfiles.
The following issues will need to be addressed:
- Polish loader and loader-tools to make it easier to add new features (Polish loader and loader-tools to make it easier to add new features #19766)
- Design a new fat jar format that can support layers in a logical way
-
- Decide what to do about the
Spring-Boot-Lib
attribute
- Decide what to do about the
-
- Provide a manifest attribute that points to the layers index
-
- Provide a manifest attribute that points to the classpath index
-
- Provide an implicit layer for buildpack contributions (Provide an implicit layer for buildpack contributions #19771) (target after M1)
- Update the
Repackager
and launcher to support the new format (Support generation and loading of layered jars #19767) - Update the Maven plugin with an option to generate the new format ( Update the Maven plugin with an option to generate layered jars #19768)
- Update the Maven plugin to allow layer customization (Provide a way to customize layers with the Maven plugin #20295)
- Update the Gradle plugin with an option to generate the new format ( Update the Gradle plugin with an option to generate layered jars #19792)
- Update the Gradle plugin to allow layer customization (Provide a way to customize layers with the Gradle plugin #20296)
- Add jarmode support to the loader code (Add jarmode support to the loader code #19848)
- Add layertools jarmode (Add layertools jarmode #19849)
- Automatically add jarmode jars when packaging (Automatically add jarmode jars when packaging #19865)
- Add layertools jarmode support to Maven ( Allow users to opt out of including the layer tools in a layered jar #19866)
- Add layertools jarmode support to Gradle ( Add layertools jarmode support to Gradle #19867)
- Provide (or generate) a Dockerfile showing how layered jars can be converted to images
- Document the new format somewhere
- Raise a java buildpack issue to ensure the new format can work with the buildpack (Add support for a layered Spring Boot jar cloudfoundry/spring-boot-cnb#6 and Update Spring Boot layered jar support cloudfoundry/spring-boot-cnb#9)