精华内容
下载资源
问答
  • shell打包maven工程生成jar包

    千次阅读 2016-05-05 09:25:25
    shell下将maven工程打包为jar

    一个maven工程(含有pom文件)


    进入到该工程目录下


    执行命令:  mvn package


    他会把pom文件执行一遍,很慢的,不如直接导入到IDEA下面,然后再导出
    展开全文
  • )) then echo "mvn package failed" exit 1 else echo "mvn package success" fi } #Start method start() { echo ">>>> maven_build_package" maven_build_package echo ">>>> extract_jar" extract_jar echo ">>>...
    #!/bin/bash
    
    #This can be replaced with your own executive program, other code does not need to be changed
    APP_NAME=eureka-server.jar
    
    #
    usage() {
        echo "Usage:sh $0 [start|stop|restart|status]"
        exit 1
    }
    
    #Check if the program is running
    is_exist() {
        pid=`ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}' `
        #If there is no return 1, return 0
        if [ -z "${pid}" ]; then
          return 1
        else
          return 0
        fi
    }
    
    extract_jar() {
      if [ ! -d "target/" ];then
        exit 1
      else
        mv target/*.jar ./${APP_NAME}
        rm -rf target/
      fi
    
    }
    
    maven_build_package(){
      mvn clean package
      if (( $? ))
      then
          echo "mvn package failed"
          exit 1
      else
          echo "mvn package success"
      fi
    }
    
    #Start method
    start() {
       echo ">>>> maven_build_package"
       maven_build_package
       echo ">>>> extract_jar"
       extract_jar
       echo ">>>> is_exist"
       is_exist
       if [ $? -eq "0" ]; then
         echo ">>>> start server"
         echo "${APP_NAME} is already running. pid=${pid} ."
       else
         nohup java -jar $APP_NAME >> Log.log 2>&1 &
       fi
       is_exist
       if [ $? -eq "0" ]; then
         echo "${APP_NAME} is already running. pid=${pid} ."
       else
         echo "${APP_NAME} start fail! "
       fi
    }
    
    
    stop() {
       is_exist
       if [ $? -eq "0" ]; then
         kill -9 $pid
         echo "${APP_NAME} already stop !"
       else
         echo "${APP_NAME} is not running"
       fi
       rm -rf Log.log
    }
    
    
    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
       start
    }
    
    # According to the input parameters,
    # choose to execute the corresponding method,
    # if not enter the instructions
    case "$1" in
       "start")
         start
         ;;
       "stop")
         stop
         ;;
       "status")
         status
         ;;
       "restart")
         restart
         ;;
       *)
         usage
         ;;
    esac
    

     

    展开全文
  • 服务器上必须安装了git maven jdk 并且配置好环境变量 实际服务器中可能运行着多个Java进程,所以重新部署的时候需要先停止原来的java进程,写一个按照名称杀死进程的脚本 kill.sh #!/bin/sh function PidFind...

    服务器上必须安装了git maven jdk 并且配置好环境变量

    实际服务器中可能运行着多个Java进程,所以重新部署的时候需要先停止原来的java进程,写一个按照名称杀死进程的脚本

    kill.sh

    #!/bin/sh
    
    function PidFind()
    
    {
    
        PIDCOUNT=`ps -ef | grep $1 | grep -v "grep" | grep -v $0 | awk '{print $2}' | wc -l`;
    
        if [ ${PIDCOUNT} -gt 1 ] ; then
    
            echo "There are too many process contains name[$1]"
    
        elif [ ${PIDCOUNT} -le 0 ] ; then
    
            echo "No such process[$1]!"
    
        else
    
            PID=`ps -ef | grep $1 | grep -v "grep" | grep -v ".sh" | awk '{print $2}'` ;
    
            echo "Find the PID of this progress!--- process:$1 PID=[${PID}] ";
    
            echo "Kill the process $1 ...";
    
            kill -9  ${PID};
    
            echo "kill -9 ${PID} $1 done!";
    
        fi
    
    }
    
    
    PidFind $1
    
    exit 1
    

    接着就是写重新部署的脚本

    redeploy.sh

    #杀死原来的java进程
    ./kill.sh test.jar
    #进入代码文件夹,必须有git管理
    cd code/test/
    #更新代码
    git pull
    #清理原来的jar包重新打包
    mvn clean install -Dmaven.test.skip=true
    cd ~
    #删除原来的jar包
    rm -rf test-web.jar
    cp code/test/test-web/target/test-web.jar test-web.jar
    #后台运行
    nohup java -agentlib:jdwp=transport=dt_socket,address=8100,server=y,suspend=n -jar test-web.jar > /root/logs/test.log &
    #监控日志
    tail -f /root/logs/flm-material.log
    

    上述的代码路径 和jar包存放位置根据实际情况修改

    展开全文
  • # 创建项目打包版本第四位序列号文件 if [ ! -f $BUILD_VERSION_SERIAL_NUMBER_FILE ]; then touch $BUILD_VERSION_SERIAL_NUMBER_FILE fi   LAST_SERIAL_NUMBER=`tail -n 1 $BUILD_VERSION_SERIAL_...

    #!/bin/bash

    #初始化各类变量

    HOME_DIR="/Users/zhaobo.lin/Documents/work/deploy"

     

    # 参数处理

    BRANCH_NAME=$1

    GIT_URL=$2

    TEMP_WAR=${GIT_URL##*/}

    PROJECT_NAME=${TEMP_WAR%.*}

     

    # 目录定义

    PROJECT_BUILD_ROOT_DIR=$PROJECT_NAME"-build-root"

    PROJECT_BUILD_GIT_DIR=$PROJECT_NAME

    PROJECT_BUILD_LOG_DIR="log"

    PROJECT_BUILD_WAR_DIR="war"

    PROJECT_BUILD_INI_DIR="ini"

     

    # 路径定义

    PROJECT_BUILD_ROOT_PATH=$HOME_DIR/$PROJECT_BUILD_ROOT_DIR

    PROJECT_BUILD_GIT_PATH=$HOME_DIR/$PROJECT_BUILD_ROOT_DIR/$PROJECT_BUILD_GIT_DIR

    PROJECT_BUILD_LOG_PATH=$HOME_DIR/$PROJECT_BUILD_ROOT_DIR/$PROJECT_BUILD_LOG_DIR

    PROJECT_BUILD_WAR_PATH=$HOME_DIR/$PROJECT_BUILD_ROOT_DIR/$PROJECT_BUILD_WAR_DIR

    PROJECT_BUILD_INI_PATH=$HOME_DIR/$PROJECT_BUILD_ROOT_DIR/$PROJECT_BUILD_INI_DIR

     

    # 打包日志路径

    LOG_FILE_PATH=$PROJECT_BUILD_LOG_PATH/$PROJECT_NAME"-"$BRANCH_NAME"-build.log"

    BUILD_VERSION_SERIAL_NUMBER_FILE=$PROJECT_BUILD_INI_PATH/$BRANCH_NAME".serial"

     

    # 创建项目打包根路径

    if [ ! -d $PROJECT_BUILD_ROOT_PATH ];

    then

        mkdir $PROJECT_BUILD_ROOT_DIR

    fi

     

    if [ ! -d $PROJECT_BUILD_GIT_PATH ];

    then

        git config --global credential.helper store

        if [ $# -ne 2 ]; then

           echo "usage:sudo ./auto_build.sh [branch] [gitUrl]"

           exit 0

        fi

        echo "克隆项目"$PROJECT_NAME"代码,git 地址:"$GIT_URL

        cd $PROJECT_BUILD_ROOT_PATH

        git clone -b $BRANCH_NAME $GIT_URL $PROJECT_BUILD_GIT_DIR

    else

    echo "项目"$PROJECT_NAME"代码目录已经存在,拉取更新指定版本代码……"

    cd $PROJECT_BUILD_GIT_PATH

    # TODO 切换 branch,并更新代码

    git checkout -b $BRANCH_NAME origin/$BRANCH_NAME

    git pull

    fi

     

    echo "创建项目打包日志目录……"

    cd $PROJECT_BUILD_ROOT_PATH

    if [ -d $PROJECT_BUILD_LOG_PATH ];

    then

    rm -rf $PROJECT_BUILD_LOG_DIR

    fi

    mkdir $PROJECT_BUILD_LOG_DIR

     

    cd $PROJECT_BUILD_GIT_PATH

    mvn clean install -Dmaven.test.skip=true | tee -a $LOG_FILE_PATH

     

    if [ `grep -c 'BUILD SUCCESS' $LOG_FILE_PATH` -gt '0' ]; 

    then

        echo "打包成功!"

    else

        echo "打包失败!退出,请查看日志,日志路径"$LOG_FILE_PATH

        exit 0

    fi

     

    cd $PROJECT_BUILD_ROOT_PATH

     

    # 创建项目打包配置文件目录

    if [ ! -d $PROJECT_BUILD_INI_PATH ];

    then

    mkdir $PROJECT_BUILD_INI_DIR

    fi

     

    echo "读取指定版本的第四位版本号。"

    # 创建项目打包版本第四位序列号文件

    if [ ! -f $BUILD_VERSION_SERIAL_NUMBER_FILE ];

    then

    touch $BUILD_VERSION_SERIAL_NUMBER_FILE

    fi

     

    LAST_SERIAL_NUMBER=`tail -n 1 $BUILD_VERSION_SERIAL_NUMBER_FILE`

     

    if [ ! $LAST_SERIAL_NUMBER ];

    then

    LAST_SERIAL_NUMBER="0"

    else

    if [[ $i =~ ^[0-9]*$ ]];

    then

    LAST_SERIAL_NUMBER=`expr $LAST_SERIAL_NUMBER + 1`

    else

    rm -f $BUILD_VERSION_SERIAL_NUMBER_FILE

    LAST_SERIAL_NUMBER="0"

    fi

    fi

     

    echo $LAST_SERIAL_NUMBER >> $BUILD_VERSION_SERIAL_NUMBER_FILE

     

    # 创建项目包存储目录

    if [ ! -d $PROJECT_BUILD_WAR_PATH ];

    then

    mkdir $PROJECT_BUILD_WAR_DIR

    fi

     

    cd $PROJECT_BUILD_WAR_PATH

    VERSION_SERIAL_WAR_DIR=$BRANCH_NAME"."$LAST_SERIAL_NUMBER

    if [ -d $PROJECT_BUILD_WAR_PATH/$VERSION_SERIAL_WAR_DIR ];

    then

    rm -rf $VERSION_SERIAL_WAR_DIR

    fi

    mkdir $VERSION_SERIAL_WAR_DIR

     

    echo "拷贝包到项目包存储目录."

    cp $PROJECT_BUILD_GIT_PATH/"target/"$PROJECT_NAME".war" $PROJECT_BUILD_WAR_PATH/$VERSION_SERIAL_WAR_DIR

     

    展开全文
  • maven项目打包脚本

    2020-07-29 15:25:48
    在多项目需要打包安装时采用的打包脚本 #!/bin/bash package_path=$(cd $(dirname $0); pwd) # 打包 function package_cmd() { mvn clean package install -Dmaven.test.skip=true -Dcheckstyle.skip=true } # ...
  • jenkins maven项目打包自动部署tomcatjdk tomcat maven 已经安装并且配置成功 jdk为1.8以上 1. jenkins下载与安装jenkins官网下载地址 或者在linux上使用wget下载 1)将下载到的jenkins放到准备的tomcat的webapps...
  • shell脚本启动java maven工程

    千次阅读 2017-08-24 14:40:52
    shell脚本启动java maven工程  我们在服务器上运行一个java工程的时候,大多数都是用java -jar *.jar此种命令方式来运行java工程,而且此种方式较为复杂,需要把工程用到的相关包都打包上,再配置Main-Class,...
  • Maven 自动打包编译的shell脚本

    千次阅读 2017-12-06 09:11:22
    echo 自动化部署脚本启动 echo 自动化部署脚本启动 echo ================================= echo 进入/data/vhome cd /data/vhome echo 开始pull版本 git pull origin dev echo 开始编译文件 m
  • maven打包项目

    2018-05-10 08:28:00
    使用maven可以对项目进行很方便...maven项目打包时除了项目源文件代码、shell脚本代码、配置文件等之外,一般还需要pom.xml文件和assembly.xml文件,其中pom.xml文件主要是配置引入maven项目需要的依赖包等,assembl...
  • 首先就是把项目打成jar,可以用maven的plugins-jar-jar:jar 也可以在控制台中,先切到项目根目录,然后 mvn clean package 就好了 --------2-------- 在idea中出现target并且由jar包说明打包成功 ---------3...
  • 主要就是构建一个maven项目,jenkins要安装maven插件的 然后你可以配置各种版本的jdk,需要在jenkins指定各个版本jdk的路径, 这样就可以根据项目选择不同版本的JDK进行项目的构建 这个地方就是配置版本号,这个是...
  • 2、安装maven yum install maven 3、修改maven仓库地址和镜像为国内源,速度快的飞起 vim /etc/maven/settings.xml 将以下代码放入<mirrors>内: <mirror> <!--阿里云仓库--> <id&...
  • 1.上传jar包到指定项目文件夹,cd进入项目文件夹,创建shell脚本 touch start.sh 2.使用vim start.sh编写start.sh脚本内容,粘贴完后esc=> :wq #!/bin/bash #配置项目所在目录,取当前脚本目录 BASE_DIR=$(cd...
  • 作者:神牛003cnblogs.com/wangrudong003/p/10502043.html本篇和大家分享的是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作;profiles指定不同环境的配置maven-assembly...
  • 只需要配置一个插件即可 去https://plugins.jenkins.io/网站搜索Post build task插件,下载下来安装到jenkins中并重启jenkins可以看到该选项,下面是我... text中的文本即执行script中的shell脚本,然后再部署web项目
  • 创建脚本run.sh,内容如下 修改APP_NAME为响应的jar名称 #!/bin/sh # Java程序主体所在的目录,即classes的上一级目录 ...# -Xloggc:记录GC日志,建议写成绝对路径,如此便可在任意目录下执行该shell脚本 J...
  • <?xml version="1.0" encoding="UTF-8"?> ...project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http...
  • 本篇和大家分享的是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作;profiles指定不同环境的配置maven-assembly-plugin打发布压缩包分享shenniu_publish.sh程序启动工具...
  • CentOS上实现一键Maven打包并部署到Tomcat的Shell脚本#!/bin/bash # #Tomcat部署脚本export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/apache-maven-3.3.9/binclearprintf " #...
  • 背景 目前团队刚组,环境部署一片...反正为了自己方便花了1个多小时搭建了一个临时环境和shell脚本。 准备工作 jdk运行环境 gitlab安装 maven安装 项目 编写脚本 #!/bin/bash DEPLOY_PATH="/home/micro-pool/" APP
  • maven 命令打包 springboot项目为jar文件

    千次阅读 2019-08-27 15:26:27
    进入项目的根目录中,打开shell窗口。 二、编译 mvn clean compile PS D:\springbootdemo\LinkpowerDtuLockManager> mvn clean compile [INFO] Scanning for projects... [INFO] [INFO] ---------------------...
  • 使用Maven作为项目jar包依赖的管理,常常会遇到命令行启动,笔者也是哥菜鸟,在做微服务,以及服务器端开发的过程中,常常会遇到项目的启动需要使用main方法,笔者潜心的研究了很多博客,发现大多写的都是很零散,...
  • 第一步,使用shift+鼠标右键打开Windows PowerShell命令窗口 ...最后,打包完成,在当前路径的target包下找到打包好的jar包 第三步,运行命令: java -jar 项目名.jar 如何在Linux下一直运行项目呢? ...
  • maven命令 mvn clean 清除class文件 mvn compile 编译类文件 mvn package 编译、打包 mvn install 编译、打包、上传本地仓库 mvn deploy 编译、打包、上传本地仓库、上传中央仓库 二. shell命令 此处用user代表...
  • shell-tomcat-git-maven 使用Shell 脚本,部署Tomcat 参考资料: #大致步骤: 0. 手工初始化项目 更新代码 打包 杀掉Tomcat 进程 备份旧war包 部署新war包 启动Tomcat<./bin/startup.sh>
  • 文章目录前言目标打包失败 继续执行shell脚本启动tomcat一直起不来的问题 前言 一人道好,千人传实。 目标 jenkins打包自动化 打包失败 继续执行shell脚本打包后面添加( ||true),即使失败也会执行后面的shell...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,470
精华内容 3,788
关键字:

shell脚本打包maven项目