GitLab + Jenkins + Maven + Tomcat 实现自动集成、打包、部署
source link: https://blog.csdn.net/weixin_46902396/article/details/118388909
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
一、安装 Tomcat 服务
1.安装 JDK
- JDK 下载地址:传送门(需要创建 Oracle 账号)
[root@Tomcat ~]# ls
anaconda-ks.cfg jdk-8u181-linux-x64.tar.gz
[root@Tomcat ~]# tar zxf jdk-8u181-linux-x64.tar.gz
[root@Tomcat ~]# ls
anaconda-ks.cfg jdk-8u181-linux-x64.tar.gz jdk1.8.0_181
[root@Tomcat ~]# mv jdk1.8.0_181/ /usr/local/java
[root@Tomcat ~]# cat <<END >> /etc/profile
export JAVA_HOME=/usr/local/java
export PATH=$PATH:"$JAVA_HOME/bin"
END
[root@Tomcat ~]# source /etc/profile
[root@Tomcat ~]# java -version
2.安装 Tomcat
[root@Tomcat ~]# wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz
[root@Tomcat ~]# ls
anaconda-ks.cfg apache-tomcat-8.5.32.tar.gz jdk-8u181-linux-x64.tar.gz
[root@Tomcat ~]# tar zxf apache-tomcat-8.5.32.tar.gz
[root@Tomcat ~]# ls
anaconda-ks.cfg apache-tomcat-8.5.32.tar.gz apache-tomcat-8.5.32 jdk-8u181-linux-x64.tar.gz
[root@Tomcat ~]# mv apache-tomcat-8.5.32 /usr/local/tomcat
在 Tomcat 服务器上配置(优化执行路径)
[root@Tomcat ~]# sed -i '/#!\/bin\/sh/aJAVA_HOME="/usr/local/java"' /usr/local/tomcat/bin/catalina.sh
[root@Tomcat ~]# sed -i '/#!\/bin\/sh/aJRE_HOME="/usr/local/java/jre"' /usr/local/tomcat/bin/catalina.sh
启动 Tomcat
[root@Tomcat ~]# /usr/local/tomcat/bin/startup.sh # 启动 Tomcat 服务
[root@Tomcat ~]# netstat -nlpt | grep 8080 # 查看端口是否开启
二、在 Jenkins 上安装 Maven
我们这里主要就是使用 Maven 来将开发写的 Java 代码,打包成 war
包后,来使用 Jenkins 将打包好的 war
包,部署到 Tomcat 上,来完成简单的版本迭代;像一些在云上的项目,基本上都在用云效(云版 Jenkins)
- GitLab 和 Jenkins 安装教程:传送门
1.安装 Maven
我们可以将 Maven 安装在 Jenkins 的服务器上:
[root@Jenkins ~]# wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
[root@Jenkins ~]# tar xf apache-maven-3.5.4-bin.tar.gz
[root@Jenkins ~]# mv apache-maven-3.5.4 /usr/local/maven
[root@Jenkins ~]# ln -s /usr/local/maven/bin/mvn /usr/bin/
1)配置 Maven 的环境变量
[root@Jenkins ~]# echo "export MAVEN_HOME=/usr/local/maven" >> /etc/profile
[root@Jenkins ~]# echo "export PATH=$PATH:$MAVEN_HOME/bin" >> /etc/profile
[root@Jenkins ~]# source /etc/profile
2)在 Maven 上配置阿里云加速
[root@Jenkins ~]# vim /usr/local/maven/conf/settings.xml
157 </mirror>
158 -->
159 <mirror>
160 <id>aliyun maven</id>
161 <name>aliyun</name>
162 <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
163 <mirrorOf>central</mirrorOf>
164 </mirror>
165 </mirrors>
2.创建 Jenkins 任务
1)创建 Jenkins 任务前,需要安装以下插件:
Git plugin
Maven Release Plug-in
2)进入配置阶段
3)开始新建一个 Jenkins 任务
General
源码管理
Build
4)编写脚本
[root@Jenkins ~]# vim tomcat_update.sh
#!/bin/bash
scp /var/lib/jenkins/workspace/tomcat/gameoflife-web/target/*.war [email protected]:/usr/local/tomcat/webapps/
ssh [email protected] "/usr/local/tomcat/bin/shutdown.sh"
sleep 3
ssh [email protected] "/usr/local/tomcat/bin/startup.sh"
5)将代码上传到 GitLab 远程仓库中
[root@Jenkins ~]# git clone [email protected]:ZhangSan/test.git
[root@Jenkins ~]# git clone [email protected]:wakaleo/game-of-life.git # 克隆 GitHub 上的代码
[root@Jenkins ~]# cd test/
[root@Jenkins test]# git rm -rf * # 删除原有仓库上的代码 (生产环境需慎重考虑)
[root@Jenkins test]# mv ../game-of-life/* . # 将克隆过来的代码移动到当前目录
[root@Jenkins test]# git add . # 上传到暂存区
[root@Jenkins test]# git commit -m 'This is Tomcat of Test' # 将暂存区代码上传到本地仓库
[root@Jenkins test]# git push origin master # 将本地仓库上传到远程仓库
- 当克隆 GitHub 上代码出现:
Permission denied (publickey).
时,我们只将公钥上传到 GitHub 上即可。
6)在 Jenkins 构建 Tomcat 项目
问题(1):如果在构建时出现如下错误,原因是因为没有配置密钥对。
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
配置 SSH 密钥对
[root@Jenkins ~]# ssh-keygen -t rsa # 创建密钥对 (三连回车即可)
[root@Jenkins ~]# ssh-copy-id [email protected]
问题(2):如果在构建时出现如下错误,原因是因为没有优化执行路径。
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
在 Tomcat 服务器上配置
[root@Tomcat ~]# sed -i '/#!\/bin\/sh/aJAVA_HOME="/usr/local/java"' /usr/local/tomcat/bin/catalina.sh
[root@Tomcat ~]# sed -i '/#!\/bin\/sh/aJRE_HOME="/usr/local/java/jre"' /usr/local/tomcat/bin/catalina.sh
访问: 192.168.1.3:8080/gameoflife/
Recommend
-
99
GitLab 自动触发 Jenkins 构建
-
76
系统环境:Gitlab主机IP:192.168.1.2Jenkins主机IP:192.168.1.3一、为何要做自动部署#为什么要做自动部署,因为懒啊!!!二、配置Gitlab#首先,你得有一个代码仓库,赶紧到gitlab上创建一个,然后创建个分支并创建一个文件。#其次,你得配置一个ssh公钥到gitlab上...
-
29
应用场景:问题项目分为app和后台两种,为了保证再同一个环境下面测试,所以不可能链接开发本地服务进行测试,所以需要搭建一个测试环境,供app进行开发测试。这个时候就有一个问题,如果开发新增加功能或者app调试的时候发现问题,这个时候就需要提交新的代码或者...
-
17
该博文实现效果:结合maven+gitlab,可以使用Jenkins对不同环境(测试及线上环境)的tomcat服务器实现版本的迭代更新及版本回滚操作,部署完成后,只需点击几下,即可实现。一、环境准备系统IP主机名运行服务Centos7.3192.168.171.131JenkinsJenkins+gitlab+MavenC...
-
5
windows下jenkins+git+maven+tomcat实现自动化部署 - 社会小青年丶的个人空间 - OSCHINA - 中文开源技术交流社区 ...
-
8
1 前提条件1、需要安装gitlab、jenkins、sonarqube;2、gitlab需要能访问jenkins地址,网络是通的,因为需要通过gitlab推送事件到jenkins机器;3、gitlab项目,需要有主程序员及以上权限。2 整体思路1、当有代码push到...
-
3
gitlab和jenkins做持续集成构建教程 上一个轮回...
-
8
iOS自动化打包 Jenkins+Gitlab+Fastlane+蒲公英+钉钉 ...
-
4
持续集成实战六——Jenkins集成Gitlab实现代码自动化交付测试部署2016年10月3日 by anzhihe·
-
5
jenkins结合gitlab实现pipline的自动构建部署 精选 原创 部署jenkins与gitlab服务就在这不...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK