zoukankan      html  css  js  c++  java
  • 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!
    
  • 相关阅读:
    树的同构
    最大子列和
    多项式的表示和运算
    图1
    集合及运算
    树4
    树3
    树2
    期末作业验收
    个人总结
  • 原文地址:https://www.cnblogs.com/somegenki/p/13457559.html
Copyright © 2011-2022 走看看