栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【maven打包】springboot打jar、zip包部署

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【maven打包】springboot打jar、zip包部署

打包参考:

  • 打zip包包含class:https://www.cnblogs.com/jimmyfan/p/11340899.html
  • 打zip包包含jar:https://blog.csdn.net/u011177064/article/details/104038302
maven项目打包 1.打成jar包

正常maven打包配置:


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

  • maven命令打包:mvn package 或 mvn -Dmaven.test.skip=true package
  • idea图像化界面

2-1.打zip包:包内包含class文件

使用maven的assembly打包插件。

  • pom添加配置:pom.xml

    
        
            maven-resources-plugin
            
                
                    compile-resources
                    
                        resources
                    
                    
                        utf-8
                        true
                        
                            
                                src/main/resources/
                                true
                                
                                    *.yml
                                
                            
                            
                                src/main/resources/
                                false
                            
                        
                    
                
                
                    copy-resources
                    
                        resources
                    
                    
                        utf-8
                        true
                        
                            
                                src/main/resources/
                                true
                                
                                    *.yml
                                
                            
                            
                                src/main/resources/
                                false
                            
                        
                        ${project.build.directory}/conf
                    
                
            
        
        
        
        
            org.springframework.boot
            spring-boot-maven-plugin
        
        
            maven-assembly-plugin
            
                false
                
                    src/main/resources/assembly.xml
                
            
            
                
                    make-assembly
                    package
                    
                        single
                    
                
            
        
        
        
        
            org.apache.maven.plugins
            maven-surefire-plugin
            2.22.1
            
                true
            
        
        
    

  • 添加打包配置文件:resources/assembly.xml

    package
    
        zip
        tar.gz
    
    true
    
        
            true
            lib
            
                
                    ${groupId}:${artifactId}
                
            
        
    
    
        
            bin
            /bin
            777
        
        
            ${project.build.directory}/conf
            /conf
        
        
            ${project.build.directory}/classes
            /classes
            
                **/*.class
                meta-INF/*
            
        
    

  • 启动脚本:编写后可添加压缩到bin目录下
## -----./bin/start.sh
#!/bin/bash
# java程序所在目录
APP_HOME=..
# 需要启动的java主程序
APP_MAIN_CLASS="com.xiaoai.PoiTestApplication"
# 拼凑完整classpath参数,包括指定lib目录下所有jar
CLASSPATH="$APP_HOME/conf:$APP_HOME/lib/*:$APP_HOME/classes"
s_pid=0
checkPid() {
  java_ps=`jps -l | grep $APP_MAIN_CLASS`
  if [ -n "$java_ps" ];then
    s_pid=`echo $java_ps | awk '{print %1}'`
  else
    s_pid=0
  fi
}

start() {
  checkPid
  if [ $s_pid -ne 0 ];then
    echo "================================================================"
    echo "warn: $APP_MAIN_CLASS already started! (pid=$s_pid)"
    echo "================================================================"
  else
    echo -n "Starting $APP_MAIN_CLASS ..."
    nohup java -classpath $CLASSPATH $APP_MAIN_CLASS >./st.out 2>&1 &
    checkPid
    if [ $s_pid -ne 0 ]; then
        echo "(pid=$s_pid)[ok]"
    else
      echo "[Failed]"
    fi
  fi
}

echo "start project......"
start


## -----./bin/start.cmd
@echo off
set APP_HOME=..
set CLASS_PATH=%APP_HOME%/lib/*;%APP_HOME%/classes;%APP_HOME%/conf;
set APP_MAIN_CLASS=【主类路径 如:com.xiaoai.PoiTestApplication】
  • 目录结构:上传zip解压到一个目录下。
    • bin:启停脚本
    • classes:编译后文件
    • conf:编译后相关配置配置文件 如:application.yml等
    • lib:依赖jar

2-2. 打zip包:包内包含jar文件

使用maven的assembly打包插件。

相当于打包进行配置分离,避免配置修改每次都需要从新打jar包上传服务器部署。

  • pom添加配置:pom.xml

    
        
        
            org.apache.maven.plugins
            maven-jar-plugin
            
                
                    
                    false
                    
                        
                        true
                        
                        lib/
                        
                        com.xiaoai.PoiTestApplication
                    
                
            
        

        
        
            org.apache.maven.plugins
            maven-assembly-plugin
            
                
                    
                    src/main/resources/assembly.xml
                
            
            
                
                    make-assembly
                    package
                    
                        single
                    
                
            
        


        
        
            org.apache.maven.plugins
            maven-surefire-plugin
            
                true
            
        
    

  • 添加打包配置文件:resources/assembly.xml


    
    bin

    
    
        zip
    

    
    false

    
        
            
            false
            lib
            false
        
    

    
        
        
            ${project.basedir}
            
            
                README*
                LICENSE*
                NOTICE*
            
        

        
        
            ${project.basedir}/src/main/resources
            config
        

        
        
            ${project.basedir}/src/main/bin
            bin
        

        
        
            ${project.build.directory}
            
            
                *.jar
            
        
    

  • 启动脚本
## -----./bin/start.sh
nohup java -jar -Dloader.path=..,../lib,../config ../poitest-0.0.1-SNAPSHOT.jar >../console.log 2>&1 &

## -----在jar包当前目录下重启动命令:指定配置文件
nohup java -jar -Dloader.path=.,./lib,./config -Dspring.config.location=./config/application.yml ./poitest-0.0.1-SNAPSHOT.jar >./console.log 2>&1 &
  • 目录结构:上传zip解压到一个目录下。
    • bin:启停脚本
    • config:编译后配置文件 如:application.yml等
    • lib:依赖jar
    • 文件console.log:运行日志
    • 文件info.txt:记录重启命令
    • jar包:打包的项目jar

项目的jar包也可以移动到lib目录下和其他jar包放一起,但需要注意启动时候的命令。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/356083.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号