以Spring Boot 为例
${artifactId} org.springframework.boot spring-boot-maven-plugin org.projectlombok lombok org.codehaus.mojo rpm-maven-plugin 2.1.5 true rpm ${rpm.install.path} maven package rpm test ${groupId} gudian ${project.version} ${rpm.install.release} false ${rpm.install.path}/${project.artifactId} 755 root root target/${project.artifactId}.jar ${rpm.install.path}/${project.artifactId}/resources 755 root root src/main/resources/* ${rpm.install.path}/${project.artifactId}/bin 750 root root bin /etc/init.d 750 root root ${rpm.install.path}/${project.artifactId}/bin/${project.artifactId}.sh ${project.artifactId} /usr/lib/systemd/system 750 root root ${rpm.install.path}/${project.artifactId}/bin/${project.artifactId}.service ${project.artifactId}.service
相关文件
bootyum.service 注册到 systemctl内用
[Unit] documentation=bootyum [Service] #设置javaHome(一定要设置,绝对路径,否则java命令找不到),systemctl运行时不会携带系统的环境变量 Environment=JAVA_HOME=/app/jdk/jdk1.8.0_161 User=root Group=root Type=forking Restart=no KillMode=process ExecStart=/etc/rc.d/init.d/bootyum start ExecStop=/etc/rc.d/init.d/bootyum stop [Install] WantedBy=multi-user.target
bootyum.sh 注册到 systemctl内用
#!/bin/bash
#设置 环境变量
export PATH=$JAVA_HOME/bin:$PATH
PID_PATH=/application/data/bootyum/bootyum.pid
Service_Name=bootyum
case "$1" in
start)
/application/data/bootyum/bin/start.sh
;;
stop)
kill $(cat ${PID_PATH})
rm ${PID_PATH}
;;
restart)
$0 stop
$0 start
;;
status)
if [ -e ${PID_PATH} ];then
echo "${Service_Name} is running, pid=$(cat ${PID_PATH})"
else
echo "${Service_Name} is NOT running"
exit 1
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
esac
exit 0
start.sh 项目真实的启动脚本
#!/bin/bash base_PATH=/application/data/bootyum Service_Name=bootyum echo " start app"; #启动命令 nohup java -jar $base_PATH/$Service_Name.jar >> $base_PATH/bootyum.log 2>&1 & #将pid写进文件 echo $! > $base_PATH/bootyum.pid打包
linux 中安装 rpm-build插件
yum install rpm-build
进入项目根路径打包
mvn clean package -Dmaven.test.skip
最后会在 target/rpm/项目名称/RPMS/noarch下生成一个rpm包
执行安装命令
#安装: rpm -hiv xxx.rpm #查看信息 rpm -qa xxx #卸载: rpm -e xxx
安装成功后执行即可启动
#启动 systemctl start 项目名称 #加入开启自启动 systemctl enable 项目名称 #停止 systemctl stop 项目名称 #重启 systemctl restart 项目名称
更多参考文档:
maven使用rpm-maven-plugin构建RPM包
systemctl java jar 添加jar文件开机启动项



