首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从spring boot中排除lib提供的库

如何从spring boot中排除lib提供的库
EN

Stack Overflow用户
提问于 2015-11-12 22:07:31
回答 3查看 14.3K关注 0票数 7

我的spring boot war太大了,我想做一些优化。SPring boot可以选择与java -jar运行war,这就是为什么lib-provided (包括所有provided依赖项)仍然在war中,即使那里不需要依赖项(我永远不会将其作为独立运行)。我可以以某种方式禁用这个聪明的功能,以便我可以节省一些空间吗?

更新:我使用的是Maven和spring boot maven插件。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-09-17 17:43:48

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

默认情况下,原始(即非可执行文件)工件被重命名为.original,但也可以使用自定义分类器保留原始工件。请参阅Spring Documentation

例如:

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

spring boot maven插件会将其重新打包成一个可执行的WAR文件(使用相同的名称),并将原始打包的应用程序重命名为MyApplication-0.0.1-SNAPSHOT.war.original.

  • You现在有两个打包的应用程序:
  • MyApplication-0.0.1-SNAPSHOT.war ( executable)
  • MyApplication-0.0.1-SNAPSHOT.war.original(Non-Executable application)

您可以一起删除Spring Boot Maven插件,也可以使用非可执行版本。

票数 13
EN

Stack Overflow用户

发布于 2017-09-18 22:37:37

您可以根据此文档更新您的pom文件:

https://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/exclude-dependency.html

唯一的问题是你不能做“全部排除”

例如:

代码语言:javascript
复制
<build>
 <plugins>
   <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <excludeGroupIds>com.packagename,com.secondpackage</excludeGroupIds>
         <excludeArtifactIds>myartifact,artifactname2</excludeArtifactIds>
        </configuration>
        </plugin>
    </plugins>
</build>
票数 2
EN

Stack Overflow用户

发布于 2018-12-06 03:11:35

不要使用Spring-Boot重新打包插件,如果你永远不打算使用它,就把它作为独立的插件来运行。使用普通的maven war插件(不包括提供的依赖项),这对于已部署的工件就足够了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33673354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档