So I am trying to migrate my war into layered jar. First I add configuration in pom.xml
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<layout>JAR</layout>
<layers>
<enabled>true</enabled>
</layers>
</configuration>
</plugin>
but now I have problem how to change my dockerfile which contains:
...
ADD @project.build.finalName@.war /usr/local/
ADD runtime-app.jar /usr/local/
CMD exec java $JAVA_OPTS -cp @project.build.finalName@.war -Dloader.path=WEB-INF/lib-provided,WEB-INF/lib,WEB-INF/classes,runtime-app.jar -Dloader.main=org.my.app.AppApplication org.springframework.boot.loader.PropertiesLauncher
I am using PropertiesLauncher because I need to add jar in runtime
I tried to add this dependency into lib folder:
COPY --from=builder application/runtime-app.jar ./BOOT-INF/lib
but there are still some errors
any idea how should I migrate this ?
UPDATE1
then I also try:
<configuration>
<includes>
<include>
<groupId>my</groupId>
<artifactId>runtime.app</artifactId>
</include>
</includes>
<layout>JAR</layout>
<layers>
<enabled>true</enabled>
</layers>
</configuration>
but then I am getting error:
java -Djarmode=layertools -jar target/my-app.jar list
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:109)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
Caused by: java.lang.NoClassDefFoundError: org/springframework/util/ClassUtils
at org.springframework.boot.loader.jarmode.JarModeLauncher.main(JarModeLauncher.java:40)
... 8 more
Caused by: java.lang.ClassNotFoundException: org.springframework.util.ClassUtils
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 9 more