
maven-jar-plugin --3.0.2 maven-assembly-plugin --3.1.1打包风格
webapp.zip
/webapp
/webapp.jar --启动jar包(顶层模块)
/lib --依赖包(含子模块)
/resources(仅标记,不是目录) --对应顶层模块resources目录下的所有文件,可配通过
assembly.xml配置筛选
开始配置
私服:http://192.168.60.63:10000/repository/maven-public/ 阿里云仓库:http://maven.aliyun.com/nexus/content/groups/public引入插件
在顶层聚合模块引入插件
配置项目打包风格webapp org.apache.maven.plugins maven-jar-plugincom.chinagdn.ChinagdnWebApplication truelib/ ./ scripts/** assembly/** config/** init/** static/** maven-assembly-plugin false src/main/assembly/package.xml make-assembly package single
在顶层聚合模块创建src/main/assembly/package.xml目录和文件,编辑package.xml内容
package
zip
true
bin
/
src/main/scripts
/
start.sh
stop.sh
stopService.bat
startService.bat
src/main/resources
/
${project.build.directory}
/
*.jar
lib
runtime
*:${project.artifactId}:*
脚本
在顶层聚合模块创建src/main/scripts/
start.sh
#!/bin/bash
APP_PATH=$(cd `dirname $0`; pwd)
APP_JAR_NAME=webapp
PROFILES=test
echo $APP_PATH$APP_JAR_NAME
pid=`ps -ef | grep $APP_PATH | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
echo "关闭进程:"$pid
fi
echo "授予当前用户权限"
chmod 777 $APP_PATH/$APP_JAR_NAME.jar
echo "启动....."
java -jar $APP_PATH/$APP_JAR_NAME.jar --spring.profiles.active=$PROFILES > /dev/null &
echo "启动完成:::" `ps -ef | grep $APP_JAR_NAME | grep -v grep | awk '{print $2}'`
stop.sh
#!/bin/bash
APP_PATH=$(cd `dirname $0`; pwd)
APP_JAR_NAME=webapp
PID=`ps -ef | grep $APP_PATH | grep -v grep | awk '{print $2}'`
if [ -z "$PID" ]
then
echo Application is already stopped
else
echo kill $PID
kill $PID
fi
startService.bat --windows系统上一键启动脚本
@echo off ::应用路径 set app=webapp.jar ::启动环境 set profiles=--spring.profiles.active=pro ::java目录 set javabin=%JAVA_HOME%bin ::设置进程查询条件,应用路径需转义为\条件才能成立 set where="commandline like '%%-jar %app:=\%%%'" ::查询实例 wmic process where %where% get CommandLine,ProcessId ::关闭实例 wmic process where %where% call terminate ::启动应用 START "webapp" "%javabin%java" -jar %app% %profiles% pause
stopService.bat --windows系统上一键停止脚本
@echo off ::应用路径 set app=webapp.jar ::设置进程查询条件,应用路径需转义为\条件才能成立 set "where=commandline like '%%-jar %app:=\%%%'" ::关闭实例 wmic process where "%where%" call terminate pause