博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java,maven工程打tar.gz包执行main方法
阅读量:7034 次
发布时间:2019-06-28

本文共 5573 字,大约阅读时间需要 18 分钟。

一、需要在pom.xml文件添加plugin

项目目录结构

 

pom.xml

1 
2
3 4
5
maven-assembly-plugin
6
2.6
7
8
9
10
src/assembly/assembly.xml
11
12
${project.name}-${project.version}
13
14
false
15
16
17
18
make-assembly
19
20
package
21
22
single
23
24
25
26
27 28
29

bin下是启动脚本,conf下是配置文件,里面可以配置脚本参数

二、assembly配置

如下:还有很多配置可以参考官网:http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html

1 
9
10
assembly
11
12
tar.gz
13
14
true
15
16
17
src/assembly/bin
18
bin
19
20
21
22
src/assembly/conf
23
conf
24
25
26
35
36
37
38
lib
39
40
41

 

三、start.sh的脚本,

只需改动启动的main方法的路径即可 : com.topsec.sic.collector.urlProbe.HeadlessChromeTest

会输出日志logs,可以查看logs里的日志文件判断main方法是否执行!

1 #!/bin/bash 2 cd `dirname $0` 3 BIN_DIR=`pwd` 4 cd .. 5 DEPLOY_DIR=`pwd` 6 CONF_DIR=$DEPLOY_DIR/conf 7  8 SERVER_NAME=`sed '/application.host.name/!d;s/.*=//' conf/config.properties | tr -d '\r'` 9 10 LOGS_DIR=$DEPLOY_DIR/logs11 if [ ! -d $LOGS_DIR ]; then12     mkdir $LOGS_DIR13 fi14 STDOUT_FILE=$LOGS_DIR/stdout.log15 16 LIB_DIR=$DEPLOY_DIR/lib17 LIB_JARS=`ls $LIB_DIR|grep .jar|awk '{print "'$LIB_DIR'/"$0}'|tr "\n" ":"`18 19 JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Duser.timezone=Asia/Shanghai "20 JAVA_DEBUG_OPTS=""21 if [ "$1" = "debug" ]; then22     JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n "23 fi24 JAVA_JMX_OPTS=""25 if [ "$1" = "jmx" ]; then26     JAVA_JMX_OPTS=" -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false "27 fi28 JAVA_MEM_OPTS=""29 BITS=`java -version 2>&1 | grep -i 64-bit`30 if [ -n "$BITS" ]; then31 #    JAVA_MEM_OPTS=" -server -Xmx2g -Xms2g -Xmn256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "32     JAVA_MEM_OPTS=" -server -Xmx512m -Xms512m -Xmn256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "33 else34 #    JAVA_MEM_OPTS=" -server -Xms1g -Xmx1g -XX:PermSize=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC "35     JAVA_MEM_OPTS=" -server -Xms256m -Xmx256m -XX:PermSize=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC "36 fi37 38 echo -e "Starting the $SERVER_NAME ...\c"39 #   nohup java $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS $JAVA_JMX_OPTS -classpath $CONF_DIR:$LIB_JARS com.topsec.trd.scanner.leack.check.Main > $STDOUT_FILE 2>&1 &40 java $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS $JAVA_JMX_OPTS -classpath $CONF_DIR:$LIB_JARS com.topsec.sic.collector.urlProbe.HeadlessChromeTest > $STDOUT_FILE 2>&141 42 COUNT=043 while [ $COUNT -lt 1 ]; do    44     echo -e ".\c"45     sleep 1 46   47     COUNT=`ps -ef | grep java | grep "$DEPLOY_DIR" | awk '{print $2}' | wc -l`48     49     if [ $COUNT -gt 0 ]; then50         break51     fi52 done53 54 echo "OK!"55 PIDS=`ps -ef | grep java | grep "$DEPLOY_DIR" | awk '{print $2}'`56 echo "PID: $PIDS"57 echo "STDOUT: $STDOUT_FILE"

关于nohup的用法可参考  https://www.cnblogs.com/jinxiao-pu/p/9131057.html  ,使命令永久的在后台执行。

四、上传文件到服务器,执行脚本

使用idea点击clean,package打包,在target目录下生成sic-probe-chromProbe-assembly.tar,将文件上传到服务器,执行命令:tar -zxvf sic-probe-chromProbe-assembly.tar.gz解压,解压后的目录结构如下:

1 drwxr-xr-x 6 sqy root       48 May  9 17:31 sic-probe-chromProbe2 -rw-r--r-- 1 sqy root 34145112 May  9 17:30 sic-probe-chromProbe-assembly.tar.gz3 [root@node105 prep-url-sqy]# cd sic-probe-chromProbe4 [root@node105 sic-probe-chromProbe]# ll5 total 46 drwxr-xr-x 2 sqy root   21 May  9 11:35 bin7 drwxr-xr-x 2 sqy root   30 May  9 17:00 conf8 drwxr-xr-x 2 sqy root 4096 May  9 17:30 lib

bin下就是启动脚本,需要注意的是,脚本只有读写权限,需要执行chmod命令给脚本加上执行权限

1 -rw-r--r-- 1 root root 2534 May  9 11:35 start.sh2 [root@node105 bin]# chmod 755 start.sh 3 [root@node105 bin]# ll4 total 45 -rwxr-xr-x 1 root root 2534 May  9 11:35 start.sh

启动脚本查看日志就行了

1 $ ./start.sh

 

转载于:https://www.cnblogs.com/sqy123/p/9015850.html

你可能感兴趣的文章
[Android Pro] root用户删除文件提示:Operation not permitted
查看>>
strncpy 引起的思考,重新认识了strncpy这个函数【转】
查看>>
A Simple GPS Application Based on Microsoft.WindowsMobile.Samples.Location
查看>>
最简单的基于FFmpeg的AVDevice例子(读取摄像头)【转】
查看>>
Ruby之入门(一)
查看>>
Spark shell的实例操作
查看>>
跳台阶问题
查看>>
MD5算法的C++实现[转载]
查看>>
Eclipse 和 MyEclipse 有什么不同?
查看>>
源代码编译安装 PHP5.5.0,解决curl_exec訪问HTTPS返回502错误的问题
查看>>
西门子数控(南京)有限公司庆祝公司成立十周年
查看>>
Java中的基本数据类型
查看>>
CentOS7下如何正确安装并启动Docker(图文详解)
查看>>
libgdx游戏引擎教程
查看>>
source insight 保存时删除多余空格,去除多余空格 space tab键【转】
查看>>
在Linux中使用C语言实现控制流保护(CFG)【转】
查看>>
Python3-json3csv
查看>>
Ruby学习笔记-Array
查看>>
ABP理论学习之Javascript API(理论完结篇)
查看>>
ASP.NET 5 WebApi 返回 HttpResponseMessage
查看>>