maven打jar包上传服务器启动程序

原创 2018年04月17日 11:18:32

使用maven打jar包上传服务器运行程序步骤

步骤1:在pom.xml中添加此段代码

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
                    <descriptors>
                        <descriptor>src/main/assembly/assembly.xml</descriptor>
                    </descriptors>
                    <archive>
                        <manifest>
                            <mainClass>com.jd.broadway.server.Application</mainClass>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

步骤2:创建assembly.xml文件,ps:这里目录是 src/main/assembly/bin ,修改时注意保持一致。

<assembly>
    <id>assembly</id>
    <formats>
        <format>zip</format>
        <format>dir</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <directory>src/main/assembly/bin</directory>
            <outputDirectory>bin</outputDirectory>
            <includes>
                <include>*.sh</include>
            </includes>
            <fileMode>0755</fileMode>
        </fileSet>
        <fileSet>
            <directory>config</directory>
            <outputDirectory>config</outputDirectory>
        </fileSet>
    </fileSets>
    <dependencySets>
        <dependencySet>
            <outputDirectory>lib</outputDirectory>
        </dependencySet>
    </dependencySets>
</assembly>

步骤三:start.sh脚本。将start.sh脚本放到bin目录下,ps:注意修改脚本中文件路径,为包名+类名,保持一致。

#!/bin/bash
cd `dirname $0`
BIN_DIR=`pwd`
cd ..
DEPLOY_DIR=`pwd`
CONF_DIR=$DEPLOY_DIR/config

SERVER_NAME=`sed '/name/!d;s/.*=//' config/application.conf | tr -d '"\t\r\n ' | head -n 1`
SERVER_PORT=`sed '/port/!d;s/.*=//' config/application.conf | tr -d '"\t\r\n ' | head -n 1`
if [ -z "$SERVER_NAME" ]; then
    SERVER_NAME=`hostname`
fi

PIDS=`ps  --no-heading -C java -f --width 1000 | grep "$CONF_DIR" |awk '{print $2}'`
if [ -n "$PIDS" ]; then
    echo "ERROR: The $SERVER_NAME already started!"
    echo "PID: $PIDS"
    exit 1
fi

if [ -n "$SERVER_PORT" ]; then
    SERVER_PORT_COUNT=`netstat -tln | grep $SERVER_PORT | wc -l`
    if [ $SERVER_PORT_COUNT -gt 0 ]; then
        echo "ERROR: The $SERVER_NAME port $SERVER_PORT already used!"
        exit 1
    fi
fi

LOGS_DIR="/export/Logs/producer/"
if [ -z "$LOGS_DIR" ]; then
    LOGS_DIR=$DEPLOY_DIR/logs
fi
if [ ! -d $LOGS_DIR ]; then
    mkdir $LOGS_DIR
fi
STDOUT_FILE=$LOGS_DIR/stdout.log

LIB_DIR=$DEPLOY_DIR/lib
LIB_JARS=`ls $LIB_DIR|grep .jar|awk '{print "'$LIB_DIR'/"$0}'|tr "\n" ":"`

JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true "
JAVA_DEBUG_OPTS=""
if [ "$1" = "debug" ]; then
    JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n "
fi
JAVA_JMX_OPTS=""
if [ "$1" = "jmx" ]; then
    JAVA_JMX_OPTS=" -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false "
fi
JAVA_MEM_OPTS=""
BITS=`file $JAVA_HOME/bin/java | grep 64-bit`
if [ -n "$BITS" ]; then
    let memTotal=`cat /proc/meminfo |grep MemTotal|awk '{printf "%d", $2/1024 }'`
    if [ $memTotal -gt 2500 ];then
        JAVA_MEM_OPTS=" -server -Xmx8000m -Xms8000m -Xmn3000m -XX:PermSize=256m -Xss2048k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=256m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "
    else
        JAVA_MEM_OPTS=" -server -Xmx1024m -Xms1024m -Xmn256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "
    fi
else
    JAVA_MEM_OPTS=" -server -Xms1024m -Xmx1024m -XX:PermSize=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC "
fi


echo -e "Starting the $SERVER_NAME ...\c"
nohup $JAVA_HOME/bin/java $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS $JAVA_JMX_OPTS -classpath $CONF_DIR:$LIB_JARS com.jd.producer.ProducerNum > $STDOUT_FILE 2>&1 &

COUNT=0
while [ $COUNT -lt 1 ]; do
    echo -e ".\c"
    sleep 1
        COUNT=`ps  --no-heading -C java -f --width 1000 | grep "$DEPLOY_DIR" | awk '{print $2}' | wc -l`
    if [ $COUNT -gt 0 ]; then
        break
    fi
done
echo "OK!"
PIDS=`ps  --no-heading -C java -f --width 1000 | grep "$DEPLOY_DIR" | awk '{print $2}'`
echo "PID: $PIDS"
echo "STDOUT: ${STDOUT_FILE}"

步骤四:打包,双击package,打包完成后在target目录下会生成对应zip包。



步骤五:讲zip包上传至对应开发机相应目录,解压,运行bin目录下start.sh脚本即可,脚本中指定了相应日志目录,注意修改。

一些基本命令:

覆盖上传:rz -bey

解压:unzip xxx.zip

运行脚本:./xxx.sh

删除目录:\rm -rf xxx/

杀进程:kill -9 PID



版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wwwtotoro/article/details/79971511

maven打jar包,用doc命令执行jar遇到的各种问题(记录备忘)

事件起因: 公司有个业务需求,两个系统搞对接,双方采用中间库的方式进行数据交互,设立了中间表,对方采用的oracle,我方采用的sqlserver,我负责写个程序定时从oracle的中间表中读取数据写...
  • WB1224678
  • WB1224678
  • 2017-08-16 10:34:44
  • 314

maven 常用命令 mvn 发布可执行jar包

Maven常用命令:  1. 创建Maven的普通java项目:     mvn archetype:create     -DgroupId=packageName     -DartifactId...
  • u014470726
  • u014470726
  • 2016-02-23 17:52:31
  • 8924

maven打jar包(结合了dubbo)的main方法启动

废话不多说,直接上pom.xml的配置文件,复制过去即可: [和dependencies同级别] edu-service-user ${project.bu...
  • u012930316
  • u012930316
  • 2017-01-13 09:38:08
  • 2105

maven打jar包时指定main类,导入依赖

&amp;lt;plugins&amp;gt; &amp;lt;plugin&amp;gt; &amp;lt;groupId&amp;gt;org.springframewor...
  • qdqht2009
  • qdqht2009
  • 2018-03-22 14:22:56
  • 33

maven工程打成jar包-我的第一篇csdn博客(无图)

本博客内容只是作者个人知识的整理,其主要目的就不是为了给其他人看(因为水平还不够),所以不建议新手尝试本博客所写的内容,但是欢迎指出错点,一点点的修正,也是对我莫大的帮助。   从有想写博客的想法到...
  • Heisenburg
  • Heisenburg
  • 2017-08-12 18:15:47
  • 743

Maven打包,并获取依赖的jar包 ,设置main方法启动

pom中加入 FlightTask in>                 org.apache.maven.plugins                 m...
  • 333sunshine
  • 333sunshine
  • 2012-04-10 10:40:08
  • 7668

使用maven命令打spring boot可执行jar包

环境:jdk8,spring boot 1.5.4 pom.xml配置spring boot插件(spring boot版本改成你当前使用的版本) org.springframew...
  • a327919006
  • a327919006
  • 2017-07-24 10:19:29
  • 247

IDEA中对maven项目打jar包

首先需要在maven项目的pom.xml文件中添加如下内容,否则运行jar包时会出现“没有主清单属性”的提示:               org.apache.maven.plugin...
  • u010022051
  • u010022051
  • 2016-10-12 12:50:33
  • 7683

springcloud-打jar包问题

用mvn打jar包,>mvn packege 启动jar包,>java -jar clouddemo-0.0.1-SNAPSHOT.jar 报错:Unable to start Embed...
  • yiwanxingchena
  • yiwanxingchena
  • 2017-04-21 14:09:54
  • 1386

IDEA maven项目打jar包方式总结

IDEA maven项目导出jar包方式总结
  • qq_21033663
  • qq_21033663
  • 2017-11-10 21:22:15
  • 1147
收藏助手
不良信息举报
您举报文章:maven打jar包上传服务器启动程序
举报原因:
原因补充:

(最多只允许输入30个字)