超详细将IDEA项目推送到gitee上,jenkins的安装与使用,并且使用jenkins拉取到gitee本地仓库上的项目

超详细将IDEA项目推送到gitee上,jenkins的安装与使用,并且使用jenkins拉取到gitee本地仓库上的项目

Jenkins概念

Jenkins是一款强大的自动化构建工具,广泛应用于软件开发和测试领域。它能够帮助团队在软件开发过程中实现自动化,从而提高生产效率和质量。下面我们将详细介绍Jenkins的用途。

1. 自动化构建

Jenkins能够自动从版本控制系统(如Git、SVN)中获取最新的代码,并根据预定义的构建脚本(如Maven、Gradle、Ant等)执行构建过程。这不仅减少了手动构建带来的错误和重复劳动,还确保了每次构建都基于最新的代码库。

2. 持续集成

持续集成(CI)是一种软件开发实践,它要求开发团队定期将代码合并到共享的主分支中,并自动运行构建和测试流程。Jenkins通过提供强大的插件系统和灵活的配置选项,使得实施持续集成变得简单而高效。每当有新的代码提交时,Jenkins都会自动触发构建和测试,从而快速发现和修复问题。

3. 自动化测试

Jenkins不仅限于构建过程,它还能集成各种测试工具(如JUnit、Selenium、JMeter等),自动执行单元测试、集成测试和性能测试等。这种自动化的测试流程确保了软件的质量,并帮助开发团队在问题影响到用户之前发现并修复它们。

4. 持续部署

持续部署(CD)是持续集成的延伸,它自动将通过所有测试的构建版本部署到生产环境或预生产环境。Jenkins通过与部署工具(如Docker、Kubernetes、Ansible等)的集成,支持自动化的部署流程,使得软件交付更加迅速和可靠。

5. 监控和报告

Jenkins提供了丰富的监控和报告功能,允许开发团队跟踪构建和测试的状态,以及查看构建历史和测试结果。这些功能帮助团队更好地理解项目的健康状况,并做出数据驱动的决策。

什么是敏捷开发

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开
发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试, 具备可视、
可集成和可运行使用 的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行
的小项目,并分别完成,在此过程中软件一直处于可使用状态。

什么是持续集成(CI

因为开发部门同时维护多个版本,多个版本的发布,测试需要大量人力,所以要有一个专业
的持续集成工具来管理持续重复的工作。
// 1. 甲方提出要求
// 可行性分析
// 需求 -> 开发 -> 测试
// bug 禅道
// bug 等级 高

JenkinsHudson
  1. Jenkins 是一个持续集成(CI)工具。它可以持续编译,运行你的代码;运行单元测试(UT)
    或集成测试;将运行结果发送至邮件,或展示成报告。
  2. Jenkins 起源于 Hudson。Hudson 在商业软件的路上继续前行,而 Jenkins 则作为开源软
    件,从 hudson 分支出来。 因此现在的 jenkins 和 hudson 非常类似,但是随着二者各自的发
    展,已经有了一些不同。
部署方式对比

JavaEE 项目部署方式对比

手动部署

git ->checkout-> war -> 部署

自动化部署

"自动化"的具体体现:向版本库提交新的代码后,应用服务器上自动部署,用户或测试人员
使用的马上就是最新的应用程序。

搭建上述持续集成环境可以把整个构建、部署过程自动化,很大程度上减轻工作量。 对于程
序员的日常开发来说不会造成任何额外负担------自己把代码提交上去之后,服务器上运行的马
上就是最新版本------一切都发生在无形中。

下载jenkins

https://www.jenkins.io/download/
https://get.jenkins.io/war-stable/2.222.4/

下载好war包后准备环境

准备环境
jdk

安装jdk

将jdk压缩包放在服务器上

解压jdk

tar -zxvf tar包名

解压之后配置jdk的环境变量

进入/etc/profile文件中

注意路径要改为自己的

export JAVA_HOME=/opt/jdk/jdk-17.0.12
export PATH=$JAVA_HOME/bin:$PATH

配置完之后让环境生效

source /etc/profile

查看jdk版本

java -version

看到17说明配置成功

tomcat

也是下载好之后直接拖入到服务器上,然后解压

tar -zxvf tar包名

解压好之后

配置环境变量,进入etc/profile

export CATALINA_HOME=/opt/jdk/tomcat5
export PATH=$PATH:$CATALINA_HOME/bin

注意自己的tomcat路径

将我们下载好的jenkins.war包放在tomcat内部里

进入tomcat

进入webapps

将war包拖入里面

启动tomcat,进入tomcat的bin里面,启动startup.sh

访问本地ip+tomcat默认端口号8080+jenkins

http://192.168.227.99:8080/jenkins

可以看到我们成功的进去了

404

但是有时候访问路径是404,怎么进都进不去,这个时候就就可能是你的jdk版本或者tomcat的版本有问题,jdk最好是17,tomcat9或10也都可以,再就是看自己的环境变量配置错误没有,如果还是进不去可以下载一个依赖

yum -y fontconfig

还是进不去可以查看tomcat的日志

在这里可以找到报错原因

继续

这个时候进入它所指的文件夹去找这个文件

Cat  /root/.jenkins/secrets/initialAdminPassword

将密码放到jenkins上并继续

左边是自动推荐下载,右边是我们自己下载的,所以我们选择自己下载

点击选择插件来安装,所有的勾都去掉,所有的插件全部不选

创建用户,密码,确认密码

访问的路径,注意是自己的ip

完毕

将项目上传到git上

先创建一个gitee账号

https://gitee.com/

创建好账号后创建一个本地仓库

点击右上角加号

创建成功之后打开我们idea

第一种上传方式:

打开左上角

找到git

下载git文件:

Git - Downloading Package

无脑下一步安装,记得配置环境变量

下载好之后再打开左上角一步一步配置,然后点击那个test看是否成功

找到项目上的vcs

这里要配置成git

点击ok之后,右上角上面会出现箭头

点击项目右键

这里要填上我们的git上面的本地仓库路径

打开git进入我们刚才创建的仓库里面,点击克隆

复制路径

ok之后我们项目左边会出现commit

commit之后点击右上角的箭头

push上传

可能会上传失败,网卡的多试几次,上传后查看自己的本地仓库看里面有没有刚上传的文件

第二种上传方式:

下载插件

下载插件

不要忘了apply

插件下好并引用之后,可以看到多了一个Gitee,进去后新添加一个账户,就是在git上的账户,apply

点击上面的Git

创建仓库

打开git看是否会上传

可以看到上传成功

这两种上传方式都可以将项目上传到git上面

配置虚拟机

安装git
yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

下载好的包放入文件夹中并解压好tar包

tar -zxvf 包名

进入git目录编译并安装

 cd git-2.19.0
make prefix=/usr/java/git all
make prefix=/usr/java/git install

配置环境变量

Vim /etc/profle

export GIT_HOME=/usr/java/git
export PATH=$GIT_HOME/bin:$PATH

让环境变量生效 查看git版本

安装完毕

安装maven

也是将包放进文件夹并解压

配置环境变量

export MAVEN_HOME=/opt/jdk/apache-maven-3.8.8
export PATH=$MAVEN_HOME/bin:$PATH 

让配置生效

source /etc/profile

进入文件

进入conf

进入settings.xml文件

修改配置

    <mirror>
        <id>alimaven</id>
        <mirrorOf>central</mirrorOf>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
    </mirror>	

下载插件

mvn help:system

使用jenkins

安全配置
配置全局工具

配置git和Maven

jdk

配置maven

安装git的插件

配置git

找到git的路径

whereis git

/usr/java/git/bin/git

安装maven插件

创建任务

BUILD_ID=DONTKILLME
echo "部署的目录和项目名称"
sh /usr/java/test/build.sh
echo "success"

创建目录

mkdir test

创建脚本文件

touch build.sh

#! /bin/bash
echo "部署的目录和项目名称"
DIR="/usr/java/project"
projectName="demo"
echo "待部署的应用服务器"
server_ips="192.168.221.37"
#所有的参数列表
for server_ip in ${server_ips[@]}
do
echo "进行备份操作"
mkdir -p $DIR/backup/${projectName}
  if [ -f "$DIR/${projectName}/${projectName}.jar" ];then
    mv $DIR/${projectName}/${projectName}.jar $DIR/backup/${projectName}/${projectName}-`date "+%Y%m%d_%H%M%S"`.jar
  fi
echo "拷贝jar包到目标服务器的目录下"
cp ${WORKSPACE}/target/*.jar $DIR/${projectName}/${projectName}.jar

echo "目标服务器:$DIR/${projectName}/${projectName}.jar"

echo "连接进行发布操作"
#mv /usr/java/test/demo.jar $DIR/backup/${projectName}/${projectName}.jar
echo "开始关闭jar"
l=`ps -ef|grep demo.jar|grep -v grep|awk '{print $2}'`
for i in $l
do
 kill -9 $i
done
sleep 5s
echo "启动jar"
nohup java -jar $DIR/${projectName}/${projectName}.jar --server.port=9999 > release_out.log 2>&1 &start_ok=false
done

完毕

启动任务

查看项目状态是否报错

完成

因为脚本里直接启动了项目,所以如果成功后,可以上浏览器输入项目的路径和端口号访问是否成功

相关推荐
努力的悟空1 小时前
国土变更调查拓扑错误自动化修复工具的研究
运维·自动化
周末不下雨2 小时前
win11+ubuntu22.04双系统 | 联想 24 y7000p | ubuntu 22.04 | 把ubuntu系统装到1T的移动固态硬盘上!!!
linux·运维·ubuntu
耗同学一米八3 小时前
2024 年河北省职业院校技能大赛网络建设与运维赛项样题四
运维·网络
东华果汁哥4 小时前
【linux 免密登录】快速设置kafka01、kafka02、kafka03 三台机器免密登录
linux·运维·服务器
会讲英语的码农4 小时前
Git项目管理
gitee·github
肖永威4 小时前
CentOS环境上离线安装python3及相关包
linux·运维·机器学习·centos
布鲁格若门4 小时前
CentOS 7 桌面版安装 cuda 12.4
linux·运维·centos·cuda
Eternal-Student4 小时前
【docker 保存】将Docker镜像保存为一个离线的tar归档文件
运维·docker·容器
dessler4 小时前
云计算&虚拟化-kvm-扩缩容cpu
linux·运维·云计算
DC_BLOG5 小时前
Linux-Apache静态资源
linux·运维·apache