美文网首页springbootJava
springboot瘦身打包

springboot瘦身打包

作者: 程序花生 | 来源:发表于2021-04-27 22:47 被阅读0次

“取一杯天上的水,照着明月人世间晃呀晃” 手机电话来了,一看原来是老板的电话,找我准没好事。

"小飞,刚xxx项目的客户打电话过来了,说手机号不能注册,赶紧看看什么问题!" 老板说。

"好的,老板。" 我温柔的回复了老板。 挂了电话后,我赶紧拿出了我的电脑。

"不应该,注册接口怎么会有问题呢?手机号+短信验证码+密码就完成注册了,很easy呀。" 边打开电脑我边在想。

电脑开机成功,打开 MobaXterm 连上服务器 ,轻车熟路敲下查看日志的命令

less log.out

ps: 简单介绍一下 less 常用命令

G 移动到最后一行

g 移动到第一行

?excep 向上搜索 包含 "excep" 的内容,回车(enter),n 向上翻页,N 向下翻页

/excep 向下搜索 包含 "excep" 的内容,回车(enter),n 向下翻页,N 向上翻页

输入G,翻到最后一行,查找异常

?exception

回车,n 向上查找,找到了,讨厌的 NullPointerException

java.lang.NullPointerException: null
    // 这里可以看到错误异常具体是在哪个类,哪行代码抛出的异常
        at com.hn.project.contorller.UserController.register(UserController.java:306)

打开 IDEA 开发工具,双击 shift, 搜索找到 UserController这个类。

Ctrl+G ,输入 306 ,点击 ok ,跳转到第 306 行代码。

"我擦,原来是这个地方报了空指针异常!" 我大声地说。

注册接口一共在两个地方使用了,就是下面两个:

  • h5 页面邀请注册,需要携带邀请码才能注册。
  • app 注册,不需要携带邀请码

因为邀请码不是必填的,所以我这边就不需要做判空的条件。但是如果有邀请码,是需要绑定邀请关系的。因为没有传邀请码,所以查询不到邀请的用户信息,就报了空指针异常。

"ok,打包部署服务器。" 我说。

打包上传,去泡杯奶茶喝,jar包上传的应该就差不多了。

奶茶泡好了,回来一看,"我擦,怎么才上传这么点?" 看到上传速度才 10k/s ,猛地一拍大腿,流量昨天开始就被限速了。

租的地方没有无线网,天天在家都是用流量,这不快到月底了吗?超过10G,就限速了,赶紧向我老婆求救,她给我来了一句,她的早就被限速了。这可咋办呢?看着慢的跟蜗牛似的网速,于是有了下面的神一般操作。

线上打包

  1. maven 安装到服务器上,如果项目上线了,最好找一台测试服务器,不要使用上线的项目的服务器,因为打包会占用服务器资源。
  2. 源代码上传到服务器
  3. 执行 mvn package 进行打包
  4. 服务关闭,启动jar包

二次优化

大家想一下,我们的编译后的代码实际上没有多大,占用空间的主要是依赖的 jar 包,我们一开始就把依赖的 jar 包上传到 服务器一个指定的目录,我们启动服务指定这个lib目录不就可以了吗?我们来试试看

  • 创建一个 lib 文件夹
  • 用压缩软件打开 jar 包,将 BOOT-INF/lib 目录下的所有 jar 包复制到刚创建好的 lib 目录
  • 删除 BOOT-INF/lib 目录下所有 jar 包

    java -Djava.ext.dirs=./lib -jar test.jar
    

注意: 如果有新的依赖 jar 包,需要单独将新的 jar 包拖到 lib 目录。

感觉这样有点麻烦,每次打完包还要手动删除依赖的 jar 包,那能不能打包的时候就排除 jar 呢?

  • gradle 配置

    // 在 build.gradle 加入以下代码
    bootJar {
        archiveClassifier = 'boot'
        excludes = ["*.jar"]
    }
    

作者:时刻在奔跑
链接:https://juejin.cn/post/6955786061876297764
来源:掘金

相关文章

网友评论

    本文标题:springboot瘦身打包

    本文链接:https://www.haomeiwen.com/subject/yccmrltx.html