华为软件开发云对比Jenkins-JavaWeb项目持续部署方式

一、前言:Jenkins介绍

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成和持续部署变成可能。

本文演示样例是一个JavaWeb项目,环境如下:

服务器:CentOS 7.3.1611主机一台

代码管理:git

编译打包:maven

发布部署:tomcat7

本试验以下下载、解压、执行等操作均在主机/home/centos目录下进行

传统工作模式需要通过手动操作大概完成如下几个步骤:

1、拉取代码

2、编译打包

3、停止tomcat服务

4、将程序包上传至tomcat容器内

5、启动tomcat服务

使用Jenkins可以将上述步骤一键完成,再配合相应的触发器机制(扫描代码变动或强制定时任务),可以实现完全的无人干预、自动完成。它的内部工作步骤如下:

1、Jenkins的触发器扫描到代码仓库发生变化或者到了设定好的任务开始时间

2、Jenkins使用git到代码仓库拉取代码

3、Jenkins使用maven对拉取的代码进行编译、打包

4、Jenkins把打包好的war工程传输到指定tomcat的webapps目录下

5、Jenkins重启tomcat服务

二、准备工作

Git版本控制服务器:

本实验中所用的Git代码服务器已提前备好,直接使用

CentOS主机上安装(已存在可忽略):

1、JDK安装

本试验中Tomcat和Jenkins都需要依赖JDK,其中最新版的Jenkins需要JDK1.8版本,采用yum安装

yum install java-1.8.0-openjdk –y

安装完毕后执行java

-version确认一下,看到版本号表示成功

2、Tomcat安装

本试验中Tomcat用来部署JavaWeb项目,Jenkins插件目前只支持到Tomcat7版本

下载安装包:

wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.79/bin/apache-tomcat-7.0.79.tar.gz

地址如果失效,可去官网http://tomcat.apache.org/重新找一个链接地址

修改端口:

Tomcat默认端口是8080,本试验中主机该端口已被占用,修改为8082

解压安装包后到Tomcat目录里面conf目录下编辑server.xml文件,将下图位置的8080修改为新的端口号:

启停服务:

到tomcat目录里面bin目录下,执行./startup启动,访问一下,地址:

http://主机IP:8082。不能访问基本都是防火墙问题,能出现小猫界面就表示服务启动成功,要想停止服务可以执行./shutdown.sh ,也可以找到进程pid,执行kill -9 pid号。

解决Tomcat启动慢:

如果发现Tomcat启动特别慢,可以打开jdk安装路径下/jre/lib/security/java.security这个文件找到securerandom.source参数修改为

securerandom.source=file:/dev/./urandom

本试验中该文件路径为/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64/jre/lib/security/java.security

3、Git安装

yum

-y installgit

安装完后执行git --version确认,看到版本号表示成功

4、Maven安装

yum-y install maven

安装完后执行mvn -v确认,看到版本号表示成功

 

三、安装Jenkins

下载程序包:

wget http://mirrors.jenkins.io/war/latest/jenkins.war

启动程序包:

下载的Jenkins程序war包可以用Tomcat发布,也可以直接执行启动,本试验中Tomcat服务用于发布JavaWeb项目,为避免混淆,采用直接执行启动。

启动命令

java -jarjenkins.war --httpPort=8081

如果不写端口号参数,默认启动端口是8080

初次启动控制台里会生成一个密码,对其进行复制

打开访问地址:http://主机IP:8081,出现如下页面

将刚才的密码进行粘贴,也可根据提示到主机上

cat /root/.jenkins/secrets/initialAdminPassword找到密码进行复制粘贴。来到如下页面

这步是让选择推荐安装还是自定义安装,之后可以随时更改,点第一个,知道用什么插件点第二个也可以这样装的包少一点。安装的插件都在/root/.jenkins/plugins/下面

直接选择continue as admin

开始使用,点击就会进来

重置admin密码:

以后访问时会需要账号密码,在“系统管理”-“管理用户”中对admin账户进行密码重置修改。

至此完成Jenkins安装以及初次登录。

此时Jenkins运行在CentOS当前页面进程里,如果关掉当前会话会导致Jenkins服务停止,可先将服务停掉,运行如下命令进行后台启动:

nohup java -jarjenkins.war --httpPort=8081 &

如要停止服务,可找到进程pid号,执行kill-9pid号

四、配置Jenkins

1、插件安装:

(1)发布容器插件

选择可选插件,过滤搜索Deploy toContainerPlugin插件(这个是支持将代码部署到tomcat容器的)

勾选,点击下边的按钮:直接安装,这个可能时间较久,等待即可。

(2)Maven工程插件

步骤同上,插件名为MavenIntegration plugin

2、系统配置

(1)JDK,别名是任意的,路径填写刚才yum安装的jdk位置

/usr/lib/jvm/java-1.8.0-openjdk

(2)Git,注意这里的git位置,是可执行文件的地址(类似于Java中bin下的java可执行文件位置),可通过git --exec-path命令查看路径,本试验yum安装的git可执行文件位置为/usr/libexec/git-core/git

(3)Maven,选择刚才yum安装的maven存放位置

/usr/share/maven

至此Jenkins的基本配置完成。

五、创建任务

1、新建任务

2、配置任务

(1)源码管理

源码管理选择Git,这个时候添加url之后,下边会报错,显示让去认证,认证即可(其他的安装中又遇到这个问题),如果认证失败,请下载认证Github Authentication plugin插件,这个在插件管理的可选插件中搜索安装

(2)构建触发器

此处默认为第一个选项,可以根据实际业务选择其他选项,

例如:

Build periodically:周期性触发执行

Poll SCM:周期性扫描代码仓库,源代码发生变化触发执行

配置内容可以点选后面的问号圆圈查看填写规则说明

此试验配置为:每五分钟执行一次,H/5 * * * *

(3)构建后操作

此配置是将编译后的文件**/target/intro.war(就是本试验的JavaWeb项目编译构建后生成的war包)部署到下边的远程Tomcat容器中;这里Containers的用户名和密码是Tomcat管理员的账户密码,Tomcat URL就是你需要进行部署的远程Tomcat服务器的ip和端口。

这里需要进行设置的是Tomcat的管理员信息,修改Tomcat容器下的conf文件夹下的tomcat-users.xml文件,在内添加下边的内容后重启Tomcat:

 

 

 

 

 

至此任务创建配置完成

六、查看任务

此时可以点击“立即构建”,也可以等待定时任务自动触发。

打开JavaWeb项目验证地址

http://主机ip:8082/intro

至此,使用Jenkins搭建的持续集成部署环境全部完成,项目人员现在只需要专注于程序开发,将完成编写和测试的代码提交至代码仓库,后续的编译、打包、上传、部署等工作全部由Jenkins根据事先的配置自动完成。

七、与华为软件开发云对比分析

1、软件易安装

Jenkins★★★☆

程序包下载后通过命令安装或者通过web容器发布,依赖于JDK,需要主机

华为软件开发云★★★★

云上服务,无需任何安装和依赖,即开即用,需要网络

2、工具集成度

Jenkins★★☆☆

依靠插件调用Git、Maven、Ant等工具,所用到的工具都需要本地安装

华为软件开发云★★★★

工具全部内置到了云端服务上,无需安装,直接使用

3、工具扩展

Jenkins★★★★

插件丰富,自由选择使用,对不同的软件环境均可很好的支持

华为软件开发云★★☆☆

所集成的工具种类和版本较为固定,不可自由选择

4、软件易使用

Jenkins★★★☆

操作界面友好,各个配置项均有图标进行说明和配置样例。

华为软件开发云★★★☆

产品上有大量的帮助文档、操作视频,配合在线客服,从不同角度提供技术支持

5、自动化任务功能

Jenkins★★★★

功能强大,支持月周天时分各个级别的自由配置

华为软件开发云★★☆☆

目前流水线功能支持每天固定一个时间或每周某些天的固定时间,无法进行更自由的配置

6、消息通知机制

Jenkins★★★☆

发送邮件进行通知,邮件内容可配置

华为软件开发云★★★☆

通过邮件和站内消息两种方式进行通知

云原生CI/CD工具对比 采用Jenkins X的最大挑战是,很难知道它是解决公司所有CI/CD需求的完美解决方案,还是一个过于复杂的怪兽,它最初会带来一些快速的胜利,但在未来的发展中可能会成为一个障碍。在Jenkins X的设计中,整合了Tekton,Helm,Draft,GitOps,以及Nexus,Chartmuseum,Monocular,Skaffold等诸多系统和工具,从而实现自动构建编译环境,生成容器镜像,流水线,自动化部署,并通过简单的Review实现不同环境间的自动发布。它不能立即使你获得CI/CD的能力。 阅读详情

相关推荐

Flow vs Jenkins 实操对比,如何将Java应用快速发布至ECS

简介:Jenkins 由于其开源特性以及丰富插件能力,长久以来都是中小企业搭建 CICD 流程的首选。不过 Jenkins 存在维护成本高、配置复杂等缺点,云效 Flow 较好地解决了这些问题。 本文从一个 Java 应用部署到云服务器(ECS)的场景切入,对比使用阿里云云效流水线 Flow 和 Jenkins 两种构建部署方式,供大家选型参考。 随着计算机技术和业务不断发展,企业软件规模越来越庞大,交付越来越复杂。持续交付 DevOps 解决方案逐渐深入人心,成为企业开发者研发模式首选。 市面上存在多

阿里云云栖号 2217

CI/CD 工具比较:Jenkins、GitLab CI、Buildbot、Drone 和 Concourse

持续集成、交付和部署是旨在帮助增加开发速度并发布经过充分测试的可用产品的策略。持续集成鼓励开发团队尽早测试和集成其对共享代码库的更改,以最小化集成冲突。持续交付建立在此基础上,通过消除部署或发布过程中的障碍。持续部署则进一步通过自动部署通过测试套件的每个构建。虽然上述术语主要涉及策略和实践,但软件工具在帮助组织实现这些目标方面起着重要作用。CI/CD 软件可以帮助团队自动推进新变更通过一系列阶段,以减少反馈时间并消除流程中的摩擦。

rubys007的博客 4360

Buddy与Jenkins对比以及为什么要使用Buddy

此外,当涉及到Jenkins时,即使它开源,成本也在于插件,因为您必须自己检查确认插件的稳定性、持久性、安全性,甚至在Jenkins版本更新时是否兼容,您必须调查某个插件是否适合使用,如果不适合,您可能会再分配开发人员进行扩展,从而让开发人员翻来覆去导致工作方向迷失、开发人员压力增加等各方面的影响,有甚者导致公司资源开支大大增涨。因此,这取决于客户的选择。我们涵盖所有更新,我们为用户分类“繁琐而困难”的工作,这样用户可以确保当他们使用我们时,只需点击、拖放,流水线就绪,并与版本控制、更新等保持一致。

dg313的博客 1108

持续集成与持续部署(三)——实现持续集成的效率工具对比之Jenkins、Travis CI、Circle CI和其他持续集成工具

持续集成与持续部署(三)——实现持续集成的效率工具对比之Jenkins、Travis CI、Circle CI和其他持续集成工具 效率工具对比 点击查看效率工具 1. Jenkins Jenkins,原名Hudson,2011年改为现在的名字,它 是一个开源的实现持续集成的软件工具。官方网站:http://jenkins-ci.org/。 Jenkins 能实时监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。 Jenkins特点: 易安装:Jen

weixin_44867717的博客 2672

深入解析五大ADC芯片架构及其应用场景

本文深入解析了五大ADC芯片架构及其应用场景,包括逐次逼近型ADC、Σ-Δ型ADC、流水线型ADC、闪存型ADC和积分型ADC。通过详细的架构分析和实际应用案例,帮助工程师理解不同ADC芯片的特点和适用场景,提升电路设计效率。

weixin_28702105的博客 355

WRF后处理:python cartopy绘制土地利用/土地分类图//python绘制WRF下垫面类型(以北极为例)

下垫面类型对于WRF的地表过程十分重要,而在我们研究WRF的地表过程之前,需要对输入的土地利用类型进行一些绘制,以便后续的修改。LU_MODIS21函数定义了绘制的土地类型、标签与对应色标,我们使用时,直接引用LU_MODIS21()即可返回。其实很简单,只要将你拥有的土地类型数据提取出来,将原本函数中的labels和C切片,重新定义色标再绘制即可。在这里,我将以北极地区为例,绘制北极地区的WRF下垫面数据,我使用的MODIS21这类。

weixin_43750300的博客 3857

CI/CD 工具选型:Jenkins 还是 GitLab CI/CD?

作者 | Rahul Jain策划 | 田晓旭近十年来,持续集成(Continuous Integration,CI)和持续交付(Continuous Delivery,CD)领域都取得...

zz_jesse的博客 4487

STM32H7串口DMA避坑指南:如何解决RT-Thread默认驱动不支持的问题

本文针对STM32H7在RT-Thread系统中启用串口DMA时遇到的驱动不支持问题,提供了详细的解决方案。通过分析问题根源,指导修改驱动代码以适配H7的DMA Stream架构,并调整内存配置确保DMA可访问性,最终实现稳定高效的串口DMA通信。

weixin_29179311的博客 424

Zadig vs. Jenkins 详细比较

在上述比对中,我详细对比了 Zadig 和 Jenkins 的设计理念、功能差异以及 Zadig 的特有亮点。它们都旨在为开发人员提供轻松构建和自动化工具,以提高工作效率并释放创造力。然而,随着时代的发展,技术不断进步,新工具不断涌现,Jenkins 曾经是一个很好的选择,但现在可能需要更适应时代的工具。在选择工具时,企业需要综合考虑需求和团队情况,包括组织规模、业务复杂度和开发者体验等因素,以选择最适合的工具来支持团队的发展和项目的成功。

BUG指挥课堂 1288

用KalmanNet搞定非线性状态估计:当卡尔曼滤波遇上神经网络

本文深入探讨了KalmanNet如何将神经网络与卡尔曼滤波结合,以解决非线性状态估计中的模型失配和噪声不确定性问题。通过保留经典滤波框架并用RNN学习卡尔曼增益,该方法在无人机导航、机器人定位等场景中实现了模型驱动与数据驱动的优势互补,提升了估计的鲁棒性和灵活性。

mango的博客 309

Unity 2D精灵点击交互实现:从BoxCollider 2D到Event Trigger的完整指南

本文提供了Unity 2D精灵点击交互的完整实现指南。通过详细拆解BoxCollider 2D与Event Trigger两大核心组件的协同工作原理,手把手教你为Sprite Renderer添加点击、悬停等事件响应。文章包含从基础配置到进阶优化、性能调试的实战步骤,帮助开发者高效实现游戏世界内的对象交互,是Unity 2D开发的实用教程。

ansible6ops的博客 301

Jenkins 全面解析:作用、功能、优势与对比

《Jenkins全面解析:核心功能与应用实践》 本文系统介绍了开源自动化服务器Jenkins的核心作用与优势。作为持续集成和持续交付领域的代表性工具,Jenkins通过强大的插件系统(支持1000+插件)和灵活的流水线机制,可以实现从代码提交到部署的完整自动化流程。文章详细对比了Jenkins与Azure DevOps的特点,指出Jenkins在开源免费、配置灵活性方面的优势。同时展示了10个典型应用场景,包括前端构建、Docker镜像推送等。Jenkins凭借其活跃的社区生态和跨平台支持,仍然是现代Dev

Interview_TC的博客 1722

python pyusb与硬件 下位机通信

python pyusb 与硬件 下位机 通讯

yuhang01的博客 951

JDK和JRE的区别

JRE(Java Runtime Enviroment)是Java的运行环境。面向Java程序的使用者,而不是开发者。如果你仅下载并安装了JRE,那么你的系统只能运行Java程序。JRE是运行Java程序所必须环境的集合,包含JVM标准实现及 Java核心类库。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。 JDK(Java Development Ki...

weixin_34023863的博客 390

Win11 1 月更新黑屏循环故障技术分析与解决方案

2026年1月30日Windows 11更新引发黑屏循环故障,主要影响2018年前出厂、采用MBR分区及特定BIOS固件的设备,尤其对使用经典版Outlook(POP协议)的用户影响显著。故障表现为系统无限重启黑屏,导致数据访问中断。分析表明,问题源于硬件兼容性、分区格式与系统更新的交互冲突。解决方案包括进入安全模式回滚更新、暂停自动更新、升级驱动/BIOS,以及等待微软官方补丁。建议用户更新前评估硬件兼容性并备份数据,企业环境应建立分阶段更新测试机制。该事件为系统更新风险管理提供了重要参考。

博客 1441

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

华为云服务器安装jenkins

3、查看yum源配置是否正确,如果不正确,更新yum源信息。- - 不修改java路径会启动失败。4、下载jenkins安装包。5、安装jenkins。1、查看OS镜像版本。原因:jdk字体问题。

m0_49710410的博客 1051

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

GitlabCI与JenkinsCI对比

...

wanger5354的博客 4338

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

谈阿里云云效 DevOps | DevOps 不再只是 Jenkins

点击上方“程序猿技术大咖”,关注并选择“设为星标”回复“加群”获取入群讨论资格!提及 DevOps 这个词,大家都一定不会陌生。近些年一直被大家所追捧、讨论,频频出现在各大技术社区、产品实践之中,可谓备受瞩目。那么,DevOps 是什么呢?有人说它是 Jenkins 的最佳实践,是一种工具,也有人说它是一种思想,更有人说它是一种方法论。今天,我们不具体谈论 DevOps ...

xcbeyond|疯狂源自梦想,技术成就辉煌 6058

华为云ECS服务器中通过docker部署jenkins

jenkins+docker环境部署

Sean_0819的博客 714

也许是目前最好的Jenkins部署指南

      通过标题能看出我是锤子的粉丝,哈哈哈,本人确实是一名锤粉,看过锤子历届的发布会,买过我锤发布的每一款手机产品。不管我锤以后是一小撮人用,还是后面烂大街的人用,我都为这家企业的情怀买单。        好了,言归正传。很久之前,看到项目组打包,部署测试环境的确是一个重复劳动,费时又费力的过程。几个人同时开发一个项目,修改或新增的类很多,导致只能对项目打全量包。打包的过程是固定的,机械的活...

liangcl_2018的博客 3746

Jenkins 系列: (四) Jenkins 构建集群方案比较

关于Jenkins 构建集群的管理,这里我转载一篇我在Jenkins 沙龙上演讲的一个题目。下面是主要内容:Jenkins分布式构建架构基于Lable的Slave集群管理基于Docker插件的容器化实践基于Kubernetes的容器化实践详细参考文章   基于 Kubernetes 的 Jenkins 构建集群实践...

huaqiangli的博客 3034

TeamCity VS Jenkins:选择正确的CI / CD工具

每个软件开发周期都涉及三个主要阶段:构建,测试和部署。这三个阶段中的任何一个滞后都会导致产品发布的延迟。为了避免此类延迟,组织依靠CI / CD工具来自动化这些过程。但是最近,随着对CI...

qqqqqkmbnjjhb的专栏 1万+

Jenkins Maven Ant Hudson几个工具的比较

困扰于这几个工具的用途,故查了些资料和文档,并找到了一个很好的博文: http://javarevisited.blogspot.com/2015/01/difference-between-maven-ant-jenkins-and-hudson.html 自己简单翻译和梳理一下: ANT 和 Maven都是构建工具,所谓构建通常的工作有:生成源代码,编译,编译测试源代码,

Here today, Gone Tomorrow 2762
上一篇: 微服务究竟该如何理解
下一篇: 华为软件开发云对比Jenkins-JavaWeb项目持续部署方式
devopscsdn
博客等级 码龄10年 124粉丝 205原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值