解决Springboot打包jar过大问题

    0

背景

最近Jenkins打包springboot项目的jar包都80M以上,在部署时候,就算压缩以后也很大,经过资料查找,最终采用瘦包部署

项目改造

  1. 修改pom.xml文件 在build-plugins-plugin下的spring-boot-maven-plugin添加一个依赖
xml
<!--pom.xml--> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <dependencies> <dependency> <groupId>org.springframework.boot.experimental</groupId> <artifactId>spring-boot-thin-layout</artifactId> <version>1.0.28.RELEASE</version> </dependency> </dependencies> </plugin> </plugins> </build>
  1. 执行打包命令mvn clean package发现jar包只有一百多KB 打包后的jar包只包含了我们自己编写的代码,依赖都不在jar包里,那么我们如何去运行它,让他去找到依赖呢。

运行jar包

我们有2种方式在服务器上运行jar包

直接运行

  1. 会把依赖下载到~/.m2/repository目录
    java -jar my-app.jar
  2. 我们可以指定依赖下载到当前目录
    java -Dthin.root=. -jar my-app.jar
  3. 我们可以在程序启动之前手动预热
    java -Dthin.dryrun=true -Dthin.root=. -jar my-app.jar

手动上传依赖

我们使用插件在本地把依赖构建好

xml
<!--pom.xml--> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <dependencies> <dependency> <groupId>org.springframework.boot.experimental</groupId> <artifactId>spring-boot-thin-layout</artifactId> <version>1.0.28.RELEASE</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.springframework.boot.experimental</groupId> <artifactId>spring-boot-thin-maven-plugin</artifactId> <version>1.0.28.RELEASE</version> <executions> <execution> <id>resolve</id> <goals> <goal>resolve</goal> </goals> <inherited>false</inherited> </execution> </executions> </plugin> </plugins> </build>
  1. target/thin/root/repository目录上传到服务器

  2. 运行命令java -Dthin.root=. -jar my-app.jar即可

评论区

共有评论 0

暂无评论