maven项目打包将依赖的jar包与项目代码分离

1.背景

很多时候我们都是使用springboot项目,依赖大量的三方jar包,但是我们自己写代码却很少

如果整体打包,我们每次修改代码后都要整体上传,非充耗费时间

因此我们希望将依赖的三方jar包与我们自己开发写的代码分开打包,

这样我们修改了代码,只需要上传自己写的很小的包这样会快很多....

2.具体步骤

修改pom.xml文件的bulid部分即可

 
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    true
                
            

            
                
                org.springframework.boot
                spring-boot-maven-plugin
                
                    ZIP
                    
                        
                            non-exists
                            non-exists
                        
                    
                
            
            
            
                org.apache.maven.plugins
                maven-dependency-plugin
                
                    
                        copy-dependencies
                        package
                        
                            copy-dependencies
                        
                        
                            
                            target/libs
                            false
                            false
                            runtime
                        
                    
                
            
        
    

3.打包后的结果

maven项目打包将依赖的jar包与项目代码分离_第1张图片 

4.启动方式

nohup  java -Dloader.path=./libs -jar XXXXX.jar &

5.启动脚本

#!/bin/bash
#这里可替换为你自己的执行程序,其他代码无需更改
APP_NAME=XXXX-api-1.0-SNAPSHOT.jar
#使用说明,用来提示输入参数
usage() {
 echo "Usage: sh 脚本名.sh [start|stop|restart|status]"
 exit 1
}
  
#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
#如果不存在返回1,存在返回0     
if [ -z "${pid}" ]; then
return 1
else
 return 0
fi
}

#启动方法
start(){
is_exist
if [ $? -eq "0" ]; then
 echo "${APP_NAME} is already running. pid=${pid} ."
else
 nohup java -Dloader.path=./libs -jar $APP_NAME -config.spring=./config/application.yml >/dev/null 2>&1 &
 echo "nohup java -Dloader.path=./lib -jar $APP_NAME -config.spring=./config/application.yml >/dev/null 2>&1 &"
 echo "${APP_NAME} start success"
fi
}

#停止方法
stop(){
is_exist
if [ $? -eq "0" ]; then
 kill $pid
else
 echo "${APP_NAME} is not running"
fi  
}

#输出运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
 echo "${APP_NAME} is running. Pid is ${pid}"
else
 echo "${APP_NAME} is NOT running."
fi
}

#重启
restart(){
stop
echo "restart ....."
sleep 5
start
}

#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
 start
 ;;
"stop")
 stop
 ;;
"status")
 status
 ;;
"restart")
 restart
 ;;
*)
 usage
 ;;
esac

6.完美

你可能感兴趣的:(问题解决,maven)