• 以jar包方式启动


    嗨,大家好~ ,在工作中,一个项目要部署到服务器上,我自己在工作中常见的部署tomcat和jar包方式部署的两种方式。(其他的有待挖掘)

    啊啊啊,公司正在做一个新的平台,所以最近疯狂在服务器上部署项目~

    今天介绍的是一个以vertx体系写的maven项目,将项目以jar包的方式启动 部署到服务器上面

    欢迎大家留言呀~~~~~~~~~~~~~~~~~~~~~


     

    部署步骤:

    1.首先要在服务器上将项目所需要的环境安装好,例如 jdk, redis,mqtt, zookpper, vertx 等等等....

    2.回到项目上,需要改动  pom.xml   和  log4j2.xml   文件

     pom.xml

    <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.3</version>
                    <configuration>
                        <!-- MUST ADD -->
                        <archive>
                            <manifestEntries>
                                <Main-Class>io.vertx.core.Launcher</Main-Class>
                                <Main-Verticle>com.seaway.open.value_added_server.open_value_added_agent.Runner</Main-Verticle>   <!-- 项目的入口路径-->
                            </manifestEntries>
                            <manifest>
                                <addClasspath>true</addClasspath>
                                <classpathPrefix>/home/open/resources/libs/</classpathPrefix>      <!--服务器上jar的路径-->
                            </manifest>
                        </archive>
                        
                        <excludes>
                            <exclude>log4j2.xml</exclude>
                            <exclude>open_value_mobiledata.yaml</exclude>      <!--自己的配置文件名称-->
                        </excludes>
                    </configuration>
    </plugin>

    log4j2.xm

    <configuration status="error">

    <properties>
            <property name="LOG_HOME">/home/open/resources/open_value_added_agent_mobiledata/logs/</property>      <!--在服务器中日志路径-->                      
            <property name="BACKUP_HOME">/home/open/resources/open_value_added_agent_mobiledata/logs/backup</property>   <!--在服务器中的日志路径-->
            <property name="SERVER_NAME">open_pay_front_agent</property>       <!--在服务器中日志名称-->
    </properties>

    3. 将项目打jar包,在下用的工具是eclipse

    右键项目----》Run  As ----》Maven  clean ----》Maven  install

    (可以将jar文件用好压打开,然后把不需要的文件删掉,不删也行)

    4.在服务器上面mkdir 一个和项目名称一样的文件夹。然后在文件夹下建立以下几个目录

    config   存放项目配置文件 ,(一些软件的路径端口,要填服务器上安装的。例如:mqtt,redis等)
    bin      存放执行文件(bin里面的文件要用 touch命令创建. eg: touch xxxx.sh)
    logs     存放日志
    jar      存放项目打成的jar
    libs     项目所需要的所有的jar包( 把maven上的jar包复制到本地,然后rz到服务器上libs。
    eg: run as
    -->maven build dependency:copy-dependencies ,输入命令 观察控制台可以查看jar都复制到本地哪里了 )

    5. bin下面的启动脚本(要会写,下面的例子)。写完以后启动项目,观察日志,报错就检查下。结束~

    eg:简单的启停例子 之一

    cat   startAndstopxxx.sh  

    if [ $# -lt 1 ] 
    then
            echo "Usage: <$0> start/stop" 
            exit 1 
    fi
    
    if [ "$1" == "start"  ] ; then        <!-- java -jar /项目jar路径   start /log4j2.xml路径   -cfg /配置文件   ,copy的时候,本条注释删掉-->
            java -jar /home/open/open_task/jar/original-get_taopiaopiao_soonShows-1.0.jar  start -Dlog4j.configurationFile=/home/open/open_task/config/get_taopiaopiao_soonShows/log4j2.xml -cfg /home/open/open_task/config/get_taopiaopiao_soonShows/taobao_soon_shows_server.yaml
    elif [ "$1" == "stop"  ] ; then
            PROCESS=`ps -ef|grep "get_taopiaopiao_soonShows"|grep -v grep|grep -v PPID|awk '{ print $2}'`
            for i in $PROCESS
            do
                    echo "Kill the get_taopiaopiao_soonShows process [ $i ]"
                    kill -9 $i
            done
    else
            echo "Usage: <$0> start/stop"
            exit 1
    fi

    eg:简单的stop的例子 之二

    cat   stopxxx.sh  

     

    #NAME=$1
    NAME=get_taopiaopiao_soonShows       <!--项目名称,copy的时候,本条注释删掉-->
    echo $NAME
    ID=`ps -ef | grep "$NAME" | grep -v "$0" | grep -v "grep" | awk '{print $2}'`
    echo $ID
    echo "---------------"
    for id in $ID
    do
    kill -9 $id
    echo "killed $id"
    done
    echo "---------------"

    eg: 简单的启停的例子 之三

    cat   startAndstopxxx.sh  

    #!/bin/sh
    
    DateTime=`date "+%Y%m%d%H%M%S"`
    AppName='open_value_added_agent'
    
    JAVA_HOME=/home/open/jdk8u172-b11
    HOME=/home/open/resources
    
    #MAIN_PATH=com.seaway.dept3.kc.main.ZjpayProcess
    
    #classpath=''
    #for jarpath in `ls $HOME/libs/*.jar` 
    #do 
    #classpath=$classpath:$jarpath
    #done
    #CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    case "$1" in
    start)
    
    echo "start $AppName"
    
    #java -jar -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Xloggc:/home/zjpaySvr/zjpay_process_svr/logs/gcc.log  -XX:+UseParNewGC  -XX:+UseConcMarkSweepGC  -XX:+UseTLAB  -XX:NewSize=128m  -XX:MaxNewSize=128m  -XX:MaxTenuringThreshold=0  -XX:SurvivorRatio=1024  -XX:+UseCMSInitiatingOccupancyOnly  -XX:CMSInitiatingOccupancyFraction=60 -cwd $HOME/$AppName/service -user $USER -home $JAVA_HOME -pidfile $PID_FILE -errfile $TMP_DIR/$AppName$DateTime.err -cp $CLASSPATH  $MAIN_PATH  
    java -jar  -Xms256m -Xmx256m -XX:CompressedClassSpaceSize=128m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m $HOME/$AppName/$AppName-1.0.0.jar -Dlog4j.configurationFile=$HOME/$AppName/log4j2.xml -cfg $HOME/$AppName/$AppName.yaml &
     
    echo "Result: $?"
    exit $?
    ;;
    
    stop)
    
    echo "stop $AppName"
    for i in `ps -ef |grep java | grep "$AppName" | grep -v grep | awk '{print $2}'`
    do
    echo $i
    if [ ! -n $i ];then
    # rm -rf $PID_PATH_NAME
    echo -e "33[32m $i has been killed 33[0m"
    # return 0;
    else
    echo -e "33[33m $i will be killed by force! 33[0m"
    kill -9 $i
    # rm -rf $PID_PATH_NAME
    # return 0;
    fi
    done
    
    echo "Result: $?"
    exit $?
    ;;
    
    *)
    echo "Usage ./$AppName.sh start/stop"
    exit 1;;
    esac

    日后的补充

    eg:简单的启停的例子之四

    #!/bin/sh
    
    case "$1" in
    start)
    
    java -jar /home/open/jar/open_pay_gate_demo-1.0.0.jar start -Dlog4j.configurationFile=/home/open/conf/open_pay_gate_demo/log4j2.xml -cfg /home/open/conf/open_pay_gate_demo/open_pay_gate_demo.yaml
    ;;
    
    stop)
    
    shellkill.sh [o]pen_pay_gate_demo-1.0.0.jar
    ;;
    
    *)
    echo "Usage open_pay_gate_demo.sh start/stop"
    exit 1;;
    esac

    多加尝试,加油~

    有的内容是自己平日积累的与工作上遇到的,有的是摘抄其他博主的精彩好文(会附上作者),愿大家共同成长。
  • 相关阅读:
    Lintcode: Two Strings Are Anagrams
    Leetcode: House Robber
    Leetcode: Binary Tree Right Side View
    Leetcode: Number of Islands
    Lintcode: Subarray Sum
    Lintcode: Sort Letters by Case
    Lintcode: Sort Colors II
    Lintcode: Single Number III
    Lintcode: Search Range in Binary Search Tree
    Lintcode: Binary Tree Serialization (Serialization and Deserialization Of Binary Tree)
  • 原文地址:https://www.cnblogs.com/PinkPink/p/9618372.html
Copyright © 2020-2023  润新知