需:
1、安装jdk,参考:
2、安装maven,参考:
3、安装git,参考:
4、安装tomcat,参考:
参考上几篇博文。
盗用一张图:
图片来源:https://www.jianshu.com/p/cfa5bb7841d6
jenkins基本安装参照上篇博文:
一、环境配置:
JDK:
GIT:
MAVEN:
二、插件安装
在第一次登陆推荐安装的插件都安装的前提下,还需要安装插件(不然新建Item时可能没有某些选项):
Publish Over SSH插件是远程发布需要的插件。
三、基础配置
点击进入Configure System,然后一直往下
名称:自己写一个
API URL:Jenkins自动填入的
凭据:拉取代码的git账号密码
填入用户密码和密码(拉取gitHub源码的账号和密码)。ID和描述可填可不填,点击添加。
点击链接测试出现红色框框里内容就成功。在一直往下
Passphrase 服务器的密码
Path to key 连接远程服务器密钥文件的路径
Key 密钥文件的内容
Name 自定义服务器名
HostName 服务器IP外网地址
UserName 服务器用户名
Remote Directory 传输文件的目录
如果用用户名和密码凭证登录的只需要填SSH Sever信息就行。
四、构建项目发布
对应项如果没有配置截图则代表可以使用默认的,最简单的配置。
选择刚刚添加的git账号
pom.xml是自动填入的,下面是maven的命令:清除-打包-test代码跳过。clean package -Dmaven.test.skip=true
Source files 项目构建后的目录
Remove prefix 去前缀
Remote directoty 发布的目录
Exec command 发布完执行的命令,我这边写的是发布完会重启tomcat
deplaoy.sh内容如下:
#! /bin/bash
# tomcat-restart
#tomcat_home是tomcat的安装目录
tomcat_home=/home/tomcat/apache-tomcat-8.5.43
#下面两个是tomcat自己的关闭和开启脚本
SHUTDOWN=$tomcat_home/bin/shutdown.sh
STARTTOMCAT=$tomcat_home/bin/startup.sh
echo "关闭$tomcat_home"
$SHUTDOWN
#杀死tomcat进程
ps -ef |grep tomcat |grep $tomcat_home |grep -v 'grep'|awk '{print $2}' | xargs kill -9
#删除日志文件,如果你不删除可以不要下面一行(我这里是注释掉的)
rm $tomcat_home/logs/* -rf
#删除tomcat的临时目录
rm $tomcat_home/work/* -rf
#关闭后休眠3秒钟再启动
sleep 3
echo "启动$tomcat_home"
$STARTTOMCAT
#看tomcat启动日志
#tail -f $tomcat_home/logs/catalina.out
#sleep 3
#echo "关闭启动日志"
#(我这里需要看tomcat启动是否报错,所以不管日志,注释掉)
#ps -ef |grep tomcat |grep $tomcat_home/logs/catalina.out |grep -v 'grep'|awk '{print $2}' | xargs kill -9
#echo "tomcat 重启脚本执行完毕"
重启脚本参考地址:
①、可能在执行脚本的出现这个错误:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined。
需要设置下路径:
用vim打开tomcat的bin目录下的setclasspath.sh,在文件最上面添加JAVA_HOME和JRE_HOME两个环境变量即可。
export JAVA_HOME=/usr/local/java/JDK/jdk1.8.0_181/
export JRE_HOME=/usr/local/java/JDK/jdk1.8.0_181/jre
参考地址:
查找jdk安装路径:echo $JAVA_HOME 或者一个更骚的命令:which is java 还有骚命令: whereis java, where和is之间是没有空格的
②、执行脚本时还可能出现这个错误:没有权限执行这个新建的重启脚本文件,这时需要登录服务器对文件进行授权:
chmod 777 deploy.sh
保存,然后点击项目
代表构建发布成功,访问ip:端口,我擦,发现访问不了。原来是我的是springboot项目,需要点小改动:
SpringBoot打成war包,部署到Tomcat服务器:
按照这篇博客改:
如果项目中用到了HttpServletRequest,本地运行则会报错:
java.lang.ClassNotFoundException: javax.servlet.Servlet
用这个方法:
但是呢,打包部署到远程服务器还是要放开注释的。
最后的最后访问: