我的 spring boot war 太大了,我想做一些优化。 SPring boot 可以选择使用 java -jar
运行 war,这就是为什么 lib-provided
(所有 provided
依赖)仍然在 war ,即使那里不需要依赖项(我永远不会将它作为独立运行)。我能否以某种方式禁用这个巧妙的功能,以便节省一些空间?
更新:我正在使用 Maven 和 spring boot maven 插件。
最佳答案
默认情况下,Spring Boot Maven 插件会将您的应用程序重新打包为可执行的 WAR/JAR。
默认情况下,original(即不可执行) Artifact 重命名为 .original,但也可以使用自定义分类器保留原始 Artifact 。引用Spring Documentation
例如:
如果您的应用名为 MyApplication 并且您正试图将其打包成 WAR,则会发生以下步骤:
- 应用程序将首先像往常一样构建,您将获得
MyApplication-0.0.1-SNAPSHOT.war
- 然后 spring boot maven 插件将其重新打包成一个可执行 WAR(同名),并将原始打包的应用程序重命名为
MyApplication-0.0.1-SNAPSHOT.war.original
。 - 您现在有两个打包的应用程序:
MyApplication-0.0.1-SNAPSHOT.war
(Spring 启动可执行文件)MyApplication-0.0.1-SNAPSHOT.war.original
(不可执行的应用程序)
您可以一起删除 Spring Boot Maven 插件或使用不可执行版本。
关于java - 如何从 spring boot 中排除 lib-provided,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33673354/