Jenkins的安装与构建springboot项目

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Jenkins的安装与构建springboot项目

正文


Jenkins的介绍


Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。本人的理解就是不用频繁的输入一些打包的命令,然后再去部署,而是通过jenkins远程拉取代码,通过脚本命令,自动打包部署启动项目。


Jenkins安装准备工作


由于jenkins基于java语言实现的,所以需要java环境。另外我们还要安装maven,和git。


Jdk安装


请参考Linux jdk的安装。


安装git


[root@localhost ~]# yum -y install git
验证是否安装成功
[root@localhost ~]# git --version
git version 1.8.3.1


安装maven


去官网下载安装包 http://maven.apache.org/download.cgi下载linux格式


444.png


上传到服务器并解压到/usr/local/maven/maven,接下来配置maven环境变量


[root@localhost maven]# vim /etc/profile


添加以下内容


export MAVEN_HOME=/usr/local/maven/maven
export PATH=$PATH:$MAVEN_HOME/bin


:wq保存,刷新生效


[root@localhost maven]# source /etc/profile


检测是否配置成功,若出现版本信息,则成功。


[root@localhost maven]# mvn -version


修改maven的settings.xml文件 添加镜像依赖


   <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
    <mirror>
        <id>osc</id>
        <mirrorOf>*</mirrorOf>
        <url>http://maven.oschina.net/content/groups/public/</url>
    </mirror>

安装Mysql


由于项目连接到了数据库,所以这里装一下,也可以不安装,为了省事,此处用docker 安装


获取镜像
[root@localhost ~]# docker pull mysql
安装
[root@localhost ~]# docker create --name mysql8 -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql
启动
[root@localhost ~]# docker start mysql8


在使用navicat连接时如果报2059错误。解决方案


将mysql用户登录的加密规则修改为mysql_native_password。
[root@localhost ~]# docker exec -it mysql8 bash
root@d8b19495f4e1:/etc/mysql# mysql -uroot -p
输入密码
 执行以下sql
%是支持远程连接,localhost是本地连接。
ALTER USER 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
FLUSH PRIVILEGES;
然后就可以连接上了。


安装Jenkins


下载安装包 Jenkins官网下载地址


下载完成上传到服务器,执行以下命令进行安装


[root@localhost ~]# rpm -ivh  jenkins-2.296-1.1.noarch.rpm


安装完之后的默认路径


/usr/lib/jenkins/jenkins.war    WAR包 
/etc/sysconfig/jenkins       配置文件
/var/lib/jenkins/        默认的JENKINS_HOME目录
/var/log/jenkins/jenkins.log    Jenkins日志文件


修改配置文件如下截图的位置


[root@localhost ~]# vim /etc/sysconfig/Jenkins


111.png


填写自己的java路径和用户修改为root


注意:1、实际生产不要用root用户启动,要自己创建一个用户


          2、java路径要写到bin下面的java 如/usr/local/jdk1.8.0_181/bin/java


然后将以下文件授权给root不然后面执行脚本的时候会告诉你没有权限


chown -R root:root /var/lib/jenkins
chown -R root:root /var/log/jenkins
chown -R root:root /var/cache/jenkins


启动jenkins


root@localhost ~]# service jenkins start


默认端口是8080。浏览器访问http:你的ip:8080


此时若报以下错误


333.png


解决方案如下,报错原因是jdk的问题


1.卸载原来的jdk,安装官方的jdk版本。

       2.在服务器额外配置插件,根据自己服务器的版本安装,如下:


需要安装#Ubuntu9以上
apt-get install ttf-dejavu
#CentOS 6
yum install dejavu-sans-fonts
#CentOS 7
yum install fontconfig


然后重新启动就可以了


[root@localhost jenkins]# service jenkins restart


配置jenkins


111.png


cat /var/lib/jenkins/secrets/initialAdminPassword


将密码复制到此处,然后下一步,安装推荐的插件,创建用户,然后保存继续。


因为我们要构建maven项目,所以需要安装maven插件,还需要从码云拉取代码,所以需要gitee的插件(跟下图一样)


444.png


下面全局配置如下图


333.png


jdk配置


222.png


Git配置


111.png


MAVEN配置


111.png


全局配置gitee


444.png


私人令牌,点问号处会告诉你去哪生成


构建maven项目


333.png


配置maven


222.png


脚本如下,脚本一定要放在你自己的位置,比如我的是/opt


#!/bin/bash -ile
project=jenkins.jar
pathName=test-jenkins
echo "拷贝文件"
rm -rf /opt/springboot/$project
mv  /var/lib/jenkins/workspace/$pathName/target/$project /opt/springboot/
echo "切换路径"
cd /opt/springboot/
pid=`ps -ef | grep $dir$project | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   kill -9 $pid
   echo "杀死存在进程"
fi
BUILD_ID=dontKillMe 
echo "执行"
nohup java -jar $project --spring.profiles.active=test > catalina.out  2>&1 &
echo "启动成功!"


如果在Windows下的编辑工具导致文件格式是dos下的,需要改成Unix执行以下命令


sed -i "s/\r//" start.sh


然后给start.sh授权


chmod +x start.sh


然后开始构建,接下来静静的等待即可。


Jenkins部署到远程服务器


新建一个虚拟机,这里你可以直接克隆一个。


需要安装 Publish Over SSH插件


进行全局下配置


111.png


name------------随意取


hostname--------------你要运行服务的IP地址


username------------------登录的用户名


Remote Directory-----------要将打好的包发送到的位置


然后构建项目配置


555.jpg


source file ----------源文件地址


remove prefix---------移除前缀


remote directory-----远程地址 ,加上前面那个配置 最终会发送到/opt/myjar这个文件下面


exec command ------执行脚本文件 这个需要放在要发布服务的那台机器上


脚本如下


project=jenkins.jar
echo "Stopping $project"
source /etc/profile
pid=`ps -ef | grep $project | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   echo "kill -9 的pid:" $pid
   kill -9 $pid
fi
echo "stop finish"
nohup java -jar /opt/myjar/$project --spring.profiles.active=test > catalina.out  2>&1 &
echo "start run....."

然后再重新构建,就可以了。


最后demo地址,可以直接下载,或者自己建一个springboot项目都可以。注意,我的项目配置文件是在阿波罗配置中心配置的,如果不需要,请打开上面配置的注释,然后注释掉阿波罗的配置即可。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
128 62
|
1月前
|
运维 jenkins Java
Jenkins 自动化局域网管控软件构建与部署流程
在企业局域网管理中,Jenkins 作为自动化工具,通过配置源码管理、构建及部署步骤,实现了高效、稳定的软件开发与部署流程,显著提升局域网管控软件的开发与运维效率。
40 5
|
1月前
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
117 5
|
2月前
|
消息中间件 Java Kafka
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
54 1
|
2月前
|
Java
SpringBoot构建Bean(RedisConfig + RestTemplateConfig)
SpringBoot构建Bean(RedisConfig + RestTemplateConfig)
47 2
|
2月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,帮助开发者提高开发效率和应用的可维护性。
121 2
|
3月前
|
自然语言处理 Java API
Spring Boot 接入大模型实战:通义千问赋能智能应用快速构建
【10月更文挑战第23天】在人工智能(AI)技术飞速发展的今天,大模型如通义千问(阿里云推出的生成式对话引擎)等已成为推动智能应用创新的重要力量。然而,对于许多开发者而言,如何高效、便捷地接入这些大模型并构建出功能丰富的智能应用仍是一个挑战。
331 6
|
3月前
|
运维 监控 jenkins
运维自动化实战:利用Jenkins构建高效CI/CD流程
【10月更文挑战第18天】运维自动化实战:利用Jenkins构建高效CI/CD流程
|
2月前
|
XML 存储 Java
SpringBoot集成Flowable:构建强大的工作流引擎
在企业级应用开发中,工作流管理是核心功能之一。Flowable是一个开源的工作流引擎,它提供了BPMN 2.0规范的实现,并且与SpringBoot框架完美集成。本文将探讨如何使用SpringBoot和Flowable构建一个强大的工作流引擎,并分享一些实践技巧。
190 0
|
前端开发 JavaScript 关系型数据库
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
3304 2
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器