![](/img/trans.png)
[英]How to stop Spring Boot from building a “fat jar” with dependencies that are not used
[英]How to load dependencies from another fat JAR or from external sources?
我设法将我的 Spring Boot fat JAR 分成 2 个较薄的 fat JARs,(一个带有应用程序,一个带有依赖项)。
现在,我正在尝试运行该应用程序,但我无法从 fat jar 中加载依赖项。
到目前为止,我尝试过:
java -jar app.jar -cp "deps.jar"
java -jar app.jar -cp "deps.jar/BOOT-INF/lib"
我还尝试解压缩 JAR 并尝试加载它
java -Dloader.path="jars:deps/BOOT-INF/lib" -jar app.jar
java -jar app.jar -cp "deps/BOOT-INF/lib"
但是没有任何进展。
有任何想法吗?
方法二:解压fat JAR读类
如果您使用的是 Spring Boot,则需要更改 MANIFEST 文件中的加载程序类型并包含库的路径。
如果你使用的是Gradle,在fat JAR生成过程中,可以添加:
manifest {
attributes 'Main-Class': 'org.springframework.boot.loader.PropertiesLauncher'
attributes 'Class-Path': 'deps/BOOT-INF/lib'
}
在你可以运行应用程序之后:
java -Dloader.path="jars:deps/BOOT-INF/lib" -jar app.jar
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.