前期准备:git、jdk、maven、Jenkins

jdk

/etc/profile

1
2
3
export JAVA_HOME=/usr/local/jdk1.8.0_321
export CLASSPATH=:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

maven

1
2
3
4
5
6
7
8
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>

/etc/profile

1
2
export MAVEN_HOME=/usr/local/apache-maven-3.8.1
export PATH=$PATH:$MAVEN_HOME/bin

载入配置
source /etc/profile

Jenkins

1
nohup java -jar jenkins.war --httpPort=9000 > jenkins.log 2>&1 &

配置Jenkins环境

全局工具配置

Maven
jdk
git
Maven

安装插件

  1. Gitee plugin
  2. Maven Integration plugin
  3. Jersey 2 API

系统配置

添加Gitee令牌

创建项目

General

构建设置

源码管理

源码管理

构建规则

构建规则

Pre steps

执行Shell命令

1
2
3
4
5
6
7
echo "准备停止iwms-0.0.1-SNAPSHOT.jar"
pid=`ps -ef | grep iwms-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi
echo "停止iwms-0.0.1-SNAPSHOT.jar完毕"

Build

Goals and Options:
clean package

Post steps

执行Shell命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
BUILD_ID=DONTKILLME
echo "移动jar包到/www/wwwroot目录,并去掉版本号名称"
if [ ! -d "/www/wwwroot/项目文件夹" ];then
mkdir /www/wwwroot/项目文件夹
else
echo "文件夹已经存在"
fi

if [ ! -f "/www/wwwroot/项目文件夹/项目名-0.0.1-SNAPSHOT.jar" ];then
echo "文件不存在"
else
rm -f /www/wwwroot/项目文件夹/项目名-0.0.1-SNAPSHOT.jar
fi

mv -f /root/.jenkins/workspace/Jenkins项目名称/target/项目名-0.0.1-SNAPSHOT.jar /www/wwwroot/项目文件夹/项目名-0.0.1-SNAPSHOT.jar
echo "移动jar包完成"

echo "启动iwms服务"
nohup java -jar /www/wwwroot/项目文件夹/项目名-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod --server.port=端口号> /www/wwwroot/项目名/learn.log 2>&1 &
echo "启动iwms服务完成"

Jenkins常用命令

重载配置 /reload
重启 /restart

Nginx配置

1
2
3
4
location / {
proxy_pass http://127.0.0.1:端口号;
index index.html index.htm index.jsp;
}

添加ssl

1
2
3
4
5
6
7
8
location / {
proxy_set_header X-Rea $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_pass http://localhost:端口号;
proxy_set_header X-Forwarded-Proto $scheme;
}