- 1. Java程序发布步骤:
- 2. 首先新建一个项目
- 3. 自动发布
- 3.1 安装配置环境
- 3.2 拉取代码
- 3.2.1 打包代码
- 3.3 在Jenkins的web界面进行自动发布
- 4. 备份原程序
- 5. 流水线的语法
- 拉取代码并打包
- 备份原程序(因为到当war包放在tomcat目录后他会自动解压)
- 拷贝新程序到服务器的web apps目录中,然后修改配置
- 重启tomcat服务
- 进行验证
给任务起一个名字,这个名字随意,再选择流水线点击确定。
这里有使用脚本的方式
这里使用hello world脚本的演示,点击保存并应用即可,它就会自动输出hello world
点击此处执行
点击任务名查看执行的状态
success表示任务执行成功,logs查看任务执行的结果
上面是演示的例子,下面讲一下该如何自动发布,自动发布的前提是手动发布。
3. 自动发布环境说明
| 主机 | IP |
|---|---|
| Jenkins | 192.168.182.141 |
| server | 192.168.182.142 |
在Jenkins主机上部署Jenkins,server主机上部署tomcat 因为Jenkins需要tomcat。而tomcat需要安装Java环境 [root@jenkins ~]# yum -y install java-11-openjdk-devel.x86_64 下载tomcat [root@jenkins ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.54/ 解压tomcat到/usr/local目录下 [root@jenkins ~]# tar xf apache-tomcat-9.0.54.tar.gz -C /usr/local/
将apache-tomcat-9.0.54改为Jenkins [root@jenkins local]# mv apache-tomcat-9.0.54/ tomcat
下载Jenkins,去官网下载:https://www.jenkins.io/zh/download/
[root@jenkins ~]# wget http://mirrors.jenkins.io/war-stable/2.303.2/jenkins.war 将下载好的war包移到当前目录 [root@jenkins webapps]# pwd /usr/local/jenkins/webapps 在移到当前目录之前将除ROOT以外的所有文件及目录,因为这个tomcat是给Jenkins使用的所以只需要留ROOT目录 [root@jenkins webapps]# mv /root/jenkins.war ./ 移到当前目录后war包会自动解压 [root@jenkins webapps]# rm -rf docs examples host-manager manager 启动服务 [root@jenkins bin]# pwd /usr/local/jenkins/bin [root@jenkins bin]# ./catalina.sh start
在浏览器输入IP地址加端口号和jenkins
到这个文件里面找到免密并输入
选择插件安装,后面默认下一步即可。
server配置
这个是tomcat的官网:https://archive.apache.org/dist/tomcat/去下载即可
下载tomcat的tar包 [root@server ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.54/ 解压tar包 [root@server ~]# tar xf apache-tomcat-9.0.54.tar.gz -C /usr/local/ 为方便后面的操作将apache-tomcat-9.0.54改为tomcat [root@server local]# mv apache-tomcat-9.0.54/ tomcat 因为tomca需要Java环境所以需要先安装java [root@server ~]# yum -y install java-11-openjdk-devel.x86_64 配置tomcat的service文件,让其开机自启 [root@server system]# systemctl daemon-reload [root@server system]# systemctl enable --now tomcat.service Created symlink /etc/systemd/system/multi-user.target.wants/tomcat.service → /usr/lib/systemd/system/tomcat.service. [root@server system]# pwd /usr/lib/systemd/system [root@server system]# cat tomcat.service [Unit] Description=tomcat server daemon After=network.target [Service] Type=forking ExecStart=/usr/local/tomcat/bin/catalina.sh start ExecStop=/usr/local/tomcat/bin/catalina.sh stop ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target [root@server system]# systemctl status tomcat.service ● tomcat.service - tomcat server daemon Loaded: loaded (/usr/lib/systemd/system/tomcat.service; enabled; vendor prese> Active: active (running) since Tue 2021-10-19 19:09:33 CST; 52s ago Process: 547856 ExecStart=/usr/local/tomcat/bin/catalina.sh start (code=exited> Main PID: 547868 (java)3.2 拉取代码
// 配置好之后就执行第一步拉取代码 先下载git命令用来拉取代码 [root@jenkins ~]# yum -y install git [root@jenkins ~]# git clone https://gitee.com/jinchenghe92/tomcat-java-demo.git3.2.1 打包代码
先下载mvn命令 [root@jenkins tomcat-java-demo]# yum -y install maven [root@jenkins tomcat-java-demo]# mvn clean package 打包之后他就会生成一个tar包 [root@jenkins tomcat-java-demo]# ls db Dockerfile LICENSE README.md target deploy.yaml jenkinsfile pom.xml src [root@jenkins target]# pwd /opt/tomcat-java-demo/target [root@jenkins target]# mv ly-simple-tomcat-0.0.1-SNAPSHOT.war myapp.war //改名字为了方便后面的操作 做免密登录 [root@jenkins target]# ssh-keygen -t rsa //一路回车即可 [root@jenkins target]# ssh-copy-id root@192.168.182.142 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@192.168.182.142's password: //输入对端主机的密码 Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'root@192.168.182.142'" and check to make sure that only the key(s) you wanted were added. 再将包传到对端主机上 [root@jenkins target]# scp myapp.war root@192.168.182.142:/usr/local/tomcat/webapps/ 传到此目录后会自动解压 [root@server webapps]# ls | grep myapp myapp myapp.war
看到此界面说发布成功
选择GitHub
这个地方写在命令行拉代码的地址
这个地方就是我们在命令行的打包代码的命令中间的这个就是当出现错误时忽略
删除这一行
点击保存并应用
点击立即构建,绿色代表成功
打包成功之后将包放在下面的目录下
[root@jenkins ~]# cd /root/.jenkins/workspace/first/target/ [root@jenkins target]# ls classes ly-simple-tomcat-0.0.1-SNAPSHOT maven-archiver generated-sources ly-simple-tomcat-0.0.1-SNAPSHOT.war maven-status4. 备份原程序
创建目录用来存放备份的包 [root@server webapps]# mkdir /opt/packages [root@server webapps]# tar -Jcf /opt/packages/myapp-$(date +%Y%m%d%H%M).tar.xz /usr/local/tomcat/webapps/myapp
点击保存并应用
点击立即构建,看到绿色的说明成功
刷新一下界面能正常访问
可以通过这个git命令去拉取代码
如果使用的代码仓库时私有的需要写用户名和密码,这样为了安全
需要添加一个凭据
填写好用户名和密码后点击添加
选择刚才添加的凭据,再生成流水线
将刚才生成的流水线脚本的路径写到此处,即可拉取成功
拉取成功
在此处可以看到用户凭据,这个凭据和我们流水线生成的一样
依然能访问



