1. svn代码checkout
代码检出
svn checkout svn://127.0.0.1/tms/tms-kingcard /home/web/workspace/svn/tms-kingcard --username chenchen
- 学习: svn常用命令
- 检出
- svn checkout http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
- svn checkout svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
注:如果不带--password 参数传输密码的话,会提示输入密码,建议不要用明文的--password 选项。
其中 username 与 password前是两个短线,不是一个。
不指定本地目录全路径,则检出到当前目录下.
- 导出(导出一个干净的不带.svn文件夹的目录树)
- svn export [-r 版本号] svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
- 添加新文件并提交
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
- 更新文件
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
第一次需要执行: systemctl daemon-reload
-
关闭: systemctl stop kingcard 或者 systemctl stop kingcard.service
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
作者 @没有故事的老大爷
随便你今天拼命爱上谁,最后你还是我的