Spring Boot 项目jar包瘦身/lib文件夹导出(分离)

Spring Boot 项目jar包瘦身/lib文件夹导出(分离)

因为项目依赖很少变动,而且每次传阿里云上,jar包大,速度慢...

所以,把xxx.jar里面的lib文件导出,先放到到云服务器上,然后编译不带上依赖库文件

新多了依赖可以注释<configuration>编译来重来一遍

瘦身前,用一个解压软件,把打包好的完整jar文件里的lib拉出来

大概目录是下/BOOT-INF/,可以看到一个lib文件夹` 就是要把这个lib拖出来,放到云服务器上,具体看jar放哪,这里是同级哦

修改项目的pom.xml文件

其中spring-boot-maven-plugin是一般都自带的,在下面加个<configuration>标签,具体可以看代码,inluce→nothing就是都不包含进去

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <layout>ZIP</layout>
                    <includes>
                        <include>
                            <groupId>nothing</groupId>
                            <artifactId>nothing</artifactId>
                        </include>
                    </includes>
                </configuration>
            </plugin>
        </plugins>
    </build>

编译jar包前先clean一波,然后再次编译(可以检查下jar包大小)

把瘦身后的jar包拖到lib同级目录(总之放一起,运行的命令可以短一点)

运行指令 重要的地方就是-Dloader.path=lib 指定依赖库的位置

  • nohup java -Dloader.path=lib -jar english-bbs-0.1.jar & # 这是后台不挂断运行,并且把输出定向到nohup.out

  • ├── lib # lib文件夹

    ├── nohup.out # 项目运行的输入

    └── xxxx-0.0.1-SNAPSHOT.jar

TODO 指令还是有点长,等学完shell写个运行脚本提高下效率

需求:关闭之前正在运行中的项目 运行项目 输出运行结果

参考代码: 老早前看到的 不记得出处了

#!/usr/bin/env bash
#!/bin/sh
RESOURCE_NAME=ying-0.0.1-SNAPSHOT.jar
 
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
 
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'App is running.'
else
    echo 'App is NOT running.'
fi
 
rm -f tpid
nohup java -jar ./$RESOURCE_NAME  & tail -f nohup.out
echo $! > tpid
echo Start Success!
原文地址:https://www.cnblogs.com/somegenki/p/13457559.html