如何从spring boot中排除lib-provided

Mej*_*jmo 5 java maven spring-boot

我的春季战靴太大了,我想进行一些优化.SPring boot可以选择与war一起运行java -jar,这就是为什么lib-provided(所有provideddependecies)仍在战争中,即使那里不需要dependecies(我永远不会单独运行它).我可以以某种方式禁用这个聪明的功能,以便我可以节省一些空间吗?

更新:我正在使用Maven和spring boot maven插件.

Man*_*ari 10

默认情况下,Spring Boot Maven插件会将您的应用程序重新打包为可执行的WAR/JAR.

原来的(即非可执行文件)神器被重命名为.original默认,但它也可以使用自定义分类,以保持原有的神器.参考Spring文档

例如:

如果您的应用程序名为MyApplication,并且您尝试将其打包到WAR中,则会执行以下步骤:

  1. 该应用程序将首先像往常一样构建,你会得到 MyApplication-0.0.1-SNAPSHOT.war
  2. 然后spring boot maven插件会将其重新打包成可执行的WAR(具有相同的名称),并将原始打包的应用程序重命名为 MyApplication-0.0.1-SNAPSHOT.war.original.
  3. 您现在有两个打包的应用程序:
    • MyApplication-0.0.1-SNAPSHOT.war (Spring启动可执行文件)
    • MyApplication-0.0.1-SNAPSHOT.war.original(不可执行的应用程序)

您可以一起删除Spring Boot Maven插件,也可以使用Non-Executable版本.