springboot单项目部署

  Seves

1. svn代码checkout

代码检出

svn checkout svn://127.0.0.1/tms/tms-kingcard /home/web/workspace/svn/tms-kingcard --username chenchen
  1. 检出
 注:如果不带--password 参数传输密码的话,会提示输入密码,建议不要用明文的--password 选项。
    其中 username 与 password前是两个短线,不是一个。
   不指定本地目录全路径,则检出到当前目录下.
  1. 导出(导出一个干净的不带.svn文件夹的目录树)
  1. 添加新文件并提交
svn add 文件名
注:告诉SVN服务器要添加文件了,还要用svn commint -m真实的上传上去!
例子:
svn add test.php <- 添加test.php 
svn commit -m “添加我的测试用test.php“ test.php
svn add *.php <- 添加当前目录下所有的php文件
svn commit -m “添加我的测试用全部php文件“ *.php
  1. 更新文件
svn update 文件名或者目录
例子:
svn update /home/web/workspace/svn/tms-kingcard

2. maven构建

项目构建

mvn clean install -Dmaven.test.skip=true -f /home/web/workspace/svn/tms-kingcard

学习: maven常用命令
- 开发中常用命令

mvn archetype:generate:创建 Maven 项目
mvn compile :编译源代码
mvn test-compile :编译测试代码
mvn test : 运行应用程序中的单元测试
mvn site : 生成项目相关信息的网站
mvn clean :清除目标目录中的生成结果
mvn package : 依据项目生成 jar 文件
mvn install :在本地 Repository 中安装 jar
mvn eclipse:eclipse :生成 Eclipse 项目文件         
  • 常用参数

3. centos 7.x系统可以将项目作为一个服务启停

一个简单的模板

  • 在 /etc/systemd/system 目录下新建文件 kingcard.service
[Unit]
# 描述
Description=kingcard
# 依赖
After=syslog.target network.target

[Service]
Type=simple

# 用户组
#User=web
#Group=web

# 启动命令
ExecStart=/usr/java/jdk1.8.0_111/bin/java -jar /home/web/workspace/svn/tms-kingcard/target/kingcard-0.0.1-SNAPSHOT.jar --spring.profiles.active=test
# 关闭命令
ExecStop=/bin/kill -15 $MAINPID

[Install]
WantedBy=multi-user.target

操作演示

  • 启动: systemctl start kingcard 或者 systemctl start kingcard.service
    start_kingcard.jpg

  • 第一次需要执行: systemctl daemon-reload

  • 关闭: systemctl stop kingcard 或者 systemctl stop kingcard.service
    stop_kingcard.jpg

4. 发布脚本

一个简单的模板

#! /bin/bash
echo "stop kingcard service!"
sudo systemctl stop kingcard.service
echo "kingcard service stopped!"
echo "begin to update code!"
svn update /home/web/workspace/svn/tms-kingcard
echo "code updated!"
echo "begin to package!"
mvn clean package -Dmaven.test.skip=true -f /home/web/workspace/svn/tms-kingcard
echo "package finished!"
# nohup java -jar /home/web/workspace/svn/tms-kingcard/target/kingcard-0.0.1-SNAPSHOT.jar --spring.profiles.active=test > /dev/null 2>&1 &
echo "start kingcard service!"
sudo systemctl start kingcard.service
echo "kingcard service started!"
echo "publish finish!"

sudo权限

由于之前都是root用户下操作,当我切换到web用户下,发现每次执行systemctl start kingcard或者sudo systemctl start kingcard时都需要输入root密码,但是我的打包脚本肯定是需要流畅的执行完成才行啊,中间如果要输入密码而且还是root密码那怎么能忍。

也就是说web用户需要sudo权限,所以解决方案是:visudo 然后添加 web ALL=(ALL) NOPASSWD: ALL

作者 @没有故事的老大爷
随便你今天拼命爱上谁,最后你还是我的

366