我的spring boot war太大了,我想做一些优化。SPring boot可以选择与java -jar运行war,这就是为什么lib-provided (包括所有provided依赖项)仍然在war中,即使那里不需要依赖项(我永远不会将其作为独立运行)。我可以以某种方式禁用这个聪明的功能,以便我可以节省一些空间吗?
更新:我使用的是Maven和spring boot maven插件。
发布于 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.
MyApplication-0.0.1-SNAPSHOT.war ( executable)MyApplication-0.0.1-SNAPSHOT.war.original(Non-Executable application)
您可以一起删除Spring Boot Maven插件,也可以使用非可执行版本。
发布于 2017-09-18 22:37:37
您可以根据此文档更新您的pom文件:
https://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/exclude-dependency.html
唯一的问题是你不能做“全部排除”
例如:
<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>发布于 2018-12-06 03:11:35
不要使用Spring-Boot重新打包插件,如果你永远不打算使用它,就把它作为独立的插件来运行。使用普通的maven war插件(不包括提供的依赖项),这对于已部署的工件就足够了。
https://stackoverflow.com/questions/33673354
复制相似问题