jenkins 持续集成环境搭建

测试经理教你jenkins +Git 搭建持续集成环境  持续集成通过自动化构建、自动化测试以及自动化部署加上较高的集成频率保证了开发系统中的问题能迅速被发现和修复,降低了集成失败的风险,使得系统在开发中始终保持在一个稳定健康的集成状态。jenkins是目前广泛应用的持续集成工具,本文记录我使用jenkins+Git配置持续集成环境的整个流程以及踩到的坑(jenkins过程的坑往往不是在第一次配置,而是在配置结束后更改某些配置项的时候踩到)。   总体流程如下:   tomcat8.0下载地址:http://tomcat.apache.org/   j 阅读详情

持续集成

持续集成(CI)是一种软件工程流程,将所有工程师对于软件的工作复本,每天集成数次到共用主线(mainline)上。

依赖以下原则达到目标

  • 维护一个代码库
  • 自动建置
  • 让建置时会自我测试
  • 所有人每天至少提交一次
  • 应该要建置每一个提交
  • 让建置维持快速
  • 用在线环境的复本测试
  • 让获取最新发布版本更容易
  • 任何人都可以查看最后建置的结果
  • 自动部署

产生的效益

  • 及早发现集成错误且由于修订的内容较小所以易于追踪,这可以节省项目的时间与成本。
  • 避免发布日期的前一分钟发生混乱,当每个人都会尝试为他们所造成的那一点点不兼容的版本做检查。
  • 当单元测试失败或发生错误,若开发人员需要在不除错的情况下还原代码库到一个没有问题的状态,只需要放弃一小部分的更改 (因为集成的次数频繁)。
  • 让 “最新” 的程序可保持可用的状态供测试、展示或发布用。
  • 频繁的提交代码会促使开发人员创建模块化,低复杂性的代码。 Jenkins是一个用Java编写的开源的持续集成工具,前身是Hudson (软件)项目,有丰富的插件支持;

Jenkins安装

安装jdk

jdk下载地址: http://www.oracle.com/technetwork/java/archive-139210.html
tar xf jdk-8u112-linux-x64.tar.gz -C /usr/local/
配置jdk环境变量vim /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_112
export CLASSPATH=.:$JAVA_HOME/lib/:$JAVA_HOME/jre/lib/
export PATH=$JAVA_HOME/bin:$PATH

安装jenkins

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins

添加java路径到jenkins启动脚本中vim /etc/init.d/jenkins
/usr/local/jdk1.8.0_112/bin/java

修改jenkins默认时区

vim /etc/sysconfig/jenkins
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Shanghai"

启动jenkins

/etc/init.d/jenkins start
chkconfig --level 35 jenkins on

访问路径 http://192.168.6.102:8080默认密码存在这个文件中 /var/lib/jenkins/secrets/initialAdminPassword

创建一个管理用户

Jenkins 配置

安装maven

jdk下载地址: http://apache.mirrors.lucidnetworks.net/maven/maven-3/
tar xf apache-maven-3.3.9-bin.tar.gz -C /usr/local/
配置maven环境变量vim /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_112
export CLASSPATH=.:$JAVA_HOME/lib/:$JAVA_HOME/jre/lib/
export M3_HOME=/usr/local/apache-maven-3.3.9
export PATH=$JAVA_HOME/bin:$PATH:$M3_HOME/bin

全局工具配置

点击系统配置-Global Tool Configuration

针对项目中使用的jdk和maven情况添加对应的版本

插件安装配置

点击系统配置-插件管理

  • 可选插件直接安装右上角的过滤功能很好用,可以直接搜索安装安装以下插件Hudson SCP publisher pluginDeploy to container PluginMaven Integration pluginPublish Over SSHPublish Over CIFSBackup plugin / ThinBackupEmail Ext Recipients Column PluginLocalization: Chinese (Simplified)
  • 高级选项中上传插件安装http://mirrors.jenkins-ci.org/plugins/安装完插件之后,建议重启一下jenkins,防止插件未加载上,不生效;

发布一个静态网站

配置Hudson SCP publisher plugin插件

此插件用于发布静态网站,拷贝文件很方便

配置需要发布的服务器hostname,端口,路径,用户名,密码(如果是正式环境,不建议使用root用户)
ps:这里有个小技巧,如果这台机器上有多个静态网站目录的话,可以在服务器设置多个hosts记录,这里使用主机名来分区不同的路径

新建一个软件项目test


源码管理:填写svn路径有获取代码权限的用户名密码
构建后操作:选择需要scp的路径Source ** 表示所有Keep Hierarchy 保持目录结构(否则不能拷贝文件夹)

点击立即构建

通过 Console Output可以看到详细日志

至此,一个静态网站就发布完成了!

发布一个java后台工程

安装Deploy to container Plugin插件

此插件可以将war/ear 包发布到tomcat,glassfish,jetty,weblogic等中间件上

配置tomcat web管理

vim /usr/local/apache-tomcat-7.0.77/conf/tomcat-users.xml

<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager-gui"/>
<role rolename="manager-gui,manager-script,manager-jmx,manager-status"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
<user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

由于jenkins把8080端口占用,我这里修改tomcat端口为8081vim /usr/local/apache-tomcat-7.0.77/conf/server.xml
<Connector port=“8081” protocol=“HTTP/1.1”
tomcat8之后的版本,为了安全,默认只有本机可以访问管理控制台,因此需要修改 T O M C A T / w e b a p p / m a n a g e r / M E T A − I N F 和 TOMCAT/webapp/manager/META-INF和 TOMCAT/webapp/manager/META−INF和TOMCAT/webapp/host-manager/META-INF目录下的content.xml修改

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

为

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="\d+\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

一个简单的maven工程代码

https://github.com/nsxq/hello-world-war

maven 的简单使用

查看版本
mvn -version
查看详细信息
mvn X
测试
mvn test
清理(target目录下的编译内容)
mvn clean
编译项目
mvn compile
打包发布
mvn package
生成eclipse项目文件
mvn eclipse:eclipse
产生site
mvn site
安装当前工程的jar安装到本地仓库
mvn install
安装jar包到本地仓库
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpackaging=jar -Dfile=/usr/local/src/ojdbc14-10.2.0.4.0.jar
分析项目的依赖信息
mvn dependency:analyze / mvn dependency:tree

新建一个maven工程

获取代码
编译参数

构建后发布

点击立即构建查看日志,已经发布完成了

访问项目http://192.168.6.102:8081/hello

至此,一个maven工程已经实现自动化编译、打包、发布!

版本回退

有时候发布一个新版本失败或发布有问题,我们需要回滚到指定版本的构建,这样才能更灵活的进行项目的构建部署。我们可以选择“参数化的构建过程”进行传递不同的参数来选择是进行新的构建还是退

对文件进行存档

为了能够进行版本回退,构建完成的需要对文件进行存档

使用参数化构建过程

让后面的脚步可以根据不同的变量执行不同的操作。添加“Choice”参数配置不同的选项,让选择发布还是回滚,添加“String Parameter”参数来传递要回退的版本号。

构建选择“Execute Shell”的方式

自己根据变量,自定义构建的脚本,此时如果是发布安装maven的构建过程进行新的构建,如果是回滚,知道历史构建后的文件,复制到当前构建结果目录。

case $deploy_env in
	deploy)
    	echo "deploy:$deploy_env"
        mvn clean test compile install package
        ;;
    rollback)
    	echo "rollback:$deploy_env"
        echo "version: $version"
        rm -fr target/hello-1.war
        cp -R ${JENKINS_HOME}/jobs/myapp/builds/${version}/com.efsavage\$hello/archive/com.efsavage/hello/1/hello-1.war .
        pwd && ls
        ;;
	*)
    exit
    	;;
esac

执行回退操作

点击构建,根据不同的参数选择发布还是版本回退,回退的时候填写要回退到的历史版本号


PS: Tomcat8配置web管理后,Tomcat访问 manager页面 报403的解决办法:https://blog.52itstyle.com/archives/274/

保姆级教程:中科蓝讯Downloader配置详解,从软硬开关机到EQ调音一步到位 本文详细介绍了中科蓝讯Downloader的配置流程,从硬件初始化到音频调优的全方位指南。涵盖软硬开关机选择、电源管理、DAC校准、EQ调音等关键步骤,帮助开发者高效完成配置并避免常见问题。特别适合需要精确控制音频设备和电源管理的中科蓝讯芯片开发者。 阅读详情

相关推荐

潜流式人工湿地计算_复合人工湿地净化水产养殖污水技术

技术概论1. 定义与分类人工湿地是指用人工筑成水池或沟槽,底面铺设防渗漏隔水层,充填一定深度的基质层,种植水生植物,利用基质、植物、微生物的物理、化学、生物三重协同作用使污水得到净化的系统。当池塘养殖污水进入人工湿地时,其污染物被床体吸附、过滤、分解而达到水质净化作用。按照水体流动方式,人工湿地分为表面流人工湿地、水平潜流人工湿地、垂直潜流人工湿地以及由前面几种湿地混合搭配的组合式人工湿...

weixin_42365490的博客 4244

Jenkins+Maven+SVN持续集成环境搭建指南

持续集成(CI)是现代软件开发的核心实践,通过自动化构建、测试和部署流程显著提升交付效率。其技术原理基于版本控制系统触发构建服务器执行预设任务链,关键技术组件包括Jenkins(构建调度)、Maven(依赖管理)和SVN(代码版本控制)。这套开源技术栈特别适合中小团队,能快速实现代码提交即构建的自动化流水线,有效解决传统手动部署的效率瓶颈和人为错误问题。典型应用场景包括Web应用开发中的每日构建、自动化测试和灰度发布,通过Jenkins的插件体系还能扩展代码质量扫描、容器化部署等高级功能。

weixin_34183910的博客 612

别再被网站风控了!手把手教你修改Chromium源码,实现TLS指纹随机化

本文详细介绍了如何通过修改Chromium源码实现TLS指纹随机化,有效规避网站风控。文章深入解析了TLS指纹(如JA3指纹)的工作原理,并提供了具体的源码修改步骤和编译方法,帮助开发者突破高级反爬技术。通过动态打乱加密套件顺序,实现每次请求生成不同的指纹,显著提升自动化工具的隐蔽性。

weixin_28712661的博客 426

【Jenkins】持续集成 简介&环境搭建

我们经常听到的持续工程方法有 3 个,分别为持续集成(Continuous Integration,CI)、持续交付(Continuous Delivery,CD)和持续部署(Continuous Deploy,CD)。指的是在一定时间内,开发人员多次将代码合并到同一主干上。代码入库后将代码编译打包成可以发布的形式,先发布到测试环境进行详细全面的测试(如果是代码修复的情况下可以根据实际情况只进行精准的测试),测试环境通过后再发布到预生产环境,最终部署到线上环境。目的就是频繁的集成以便发现其中的错误。

专注于技术分享的博主 991

香橙派5玩转SATA SSD:一个被忽略的overlays配置项,让你的Ubuntu系统飞起来

本文详细介绍了如何在香橙派5上通过配置`overlays=ssd-sata`启用SATA SSD作为系统启动盘,大幅提升Ubuntu系统的性能。文章深入解析了设备树覆盖的工作原理,提供了完整的配置流程和性能优化建议,帮助开发者充分发挥香橙派5的硬件潜力。

weixin_30787531的博客 219

AI智能体项目管理框架agent-pm:从原理到实战的多智能体协作指南

在人工智能和自动化技术快速发展的今天,多智能体系统已成为实现复杂任务自动化的重要技术路径。其核心原理在于通过任务分解、角色分配和状态管理,让多个AI智能体像人类团队一样协同工作,从而突破单个模型的性能边界。这种架构的技术价值在于将软件工程中成熟的项目管理方法论引入AI领域,显著提升了自动化流程的可预测性、可观测性和可复用性。在实际应用场景中,多智能体协作框架能够高效处理从代码开发、文档撰写到数据分析等一系列任务,尤其适合需要多步骤、多专业协同的复杂项目。本文聚焦的agent-pm框架,正是这一领域的典型实践

weixin_42533910的博客 714

Jenkins 持续集成环境搭建

本文记录作者 安装Jenkins 的全过程,并演示由Jenkins任务控制从GitLab获取项目版本,打包java项目,最后通过ssh上传到目标环境的简单流程。

tysite的博客 473

Unity Shader Graph 2D - Procedural程序化图形转动的环状六边形

Hexagon又称六边形,在游戏中是十分常见的基础形状,本文将使用程序化的六边形来制作多个环状六边形叠加的转动动画效果,实践Unity Shader Graph中的常用节点功能。

Giver的博客 1928

实战分享:在CentOS7上搭建Jenkins持续集成环境

Jenkins提供了软件开发的持续集成服务,它可以运行在Servlet容器中,如Apache Tomcat。Jenkins支持多种软件配置管理(SCM)工具,包括Git、Subversion等,能够执行基于Apache Ant、Apache Maven的项目,以及任意的Shell脚本和Windows批处理命令。简而言之,Jenkins的存在就是为了简化我们的开发流程,比如当我们向Git提交代码时,Jenkins可以自动拉取最新代码进行部署。

m0_37643701的博客 1148

5分钟搞定!用OpenCV实现全景图像柱面展开的保姆级教程(附完整代码)

本文提供了一份使用OpenCV实现全景图像柱面展开的详细教程。通过清晰的数学原理讲解和分步代码演示,指导读者快速掌握从等距柱状投影全景图到平面展开图的核心转换方法,并涵盖性能优化、参数调整及透视视图扩展等实用技巧,适合图像处理爱好者和开发者实践。

sony5的博客 571

LVGL移植教程(正点原子)

学习正点原子LVGL移植教程,根据视频教程写的博客

papalila的博客 939

搭建GitLab+Jenkins持续集成环境图文教程

GitLab是一个代码仓库,用来管理代码。Jenkins是一个自动化服务器,可以运行各种自动化构建、测试或部署任务。所以这两者结合起来,就可以实现开发者提交代码到GitLab,Jenkins以一定频率自动运行测试、构建和部署的任务,帮组开发团队更高效的集成和发布代码。 下面是我最近安装GitLab+Jenkins环境的一个过程,记录下来,以备日后参考。 另外,这篇文章虽然很长,讲得很琐碎,...

目尽地平线 10万+

【沃顿商学院学习笔记】商业基础——Financing:05 名义利率和实际利率 APR& EAR

商业基础——名义利率和实际利率 本章主要是从名义利率和实际利率的相关概念和计算方法进行学习。 名义利率和实际利率 APR&amp;amp; EAR 根据下图可以直到: APR,QUOTED RATE在精算中又叫名义利率,比如一个房产贷款quoted rate or APR是12%,且按月复利,那么说明它的月实际利率是12%/12=1% EAR是effecive annual rate,在精算中叫实际利率,...

ECNU乐扣老师——区块链、可计算情感 1万+

搭建服务器jenkins+sonar的持续集成代码质量环境

搭建服务器jenkins+sonar的持续集成代码质量环境 目录 搭建服务器jenkins+sonar的持续集成代码质量环境 一、安装sonarqube 二、安装sonar-scanner 三、安装Mysql 四、 SonarScanner使用 五、 jenkins部署 1、 下载、安装jenkins 2、 系统设置添加插件: 安装SonarQube Scanner插件 3、 设置sonar-scanner全局配置。 4、 前往sonar平台获取token,...

大家一起学编程(python) 2034

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

使用Jenkins搭建持续集成(CI)环境

使用Jenkins搭建持续集成(CI)环境

hfq03的博客 477

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

java 持续集成环境_Jenkins持续集成环境搭建

环境准备:(注意:Jenkins需要Java环境,所以需要先安装JDK)一、安装JDK选中Accipt License Agreement按钮,接受许可协议,对JDK进行下载并安装2、在系统环境变量中添加以下变量:1)、JAVA_HOME:JDK的安装路径(例如,D:\Java\jdk1.8.0_221)2)、CLASSPATH:".;%JAVA_HOME%\lib;"3)、Path:";%JAV...

weixin_39949506的博客 170

使用Jenkins搭建持续集成环境的方法(一)

引用Jenkins官网中的介绍,内容如下:维基百科中关于Jenkins的介绍如下:Jenkins 是一款由 Java 编写的开源的持续集成(CI)工具。Jenkins 提供了软件开发的持续集成服务。它运行在 Servlet 容器中(例如 Apache Tomcat)。

liitdar的博客 1040

centos7下搭建Jenkins持续集成环境(安装jenkins)

一、jdk安装 因为之前虚拟机中已经安装了jdk了,这里省略了。 二 、安装jenkins 1.获取jenkis安装包 wget http://pkg.jenkins-ci.org/redhat-stable/jenkins-2.7.3-1.1.noarch.rpm 2.获取成功后,开始安装: rpm -ivh jenkins-2.7.3-1.1.noarch.rpm...

青春年少不知疼的博客 3264

Jenkins+SVN 持续集成环境搭建

Jenkins+SVN 持续集成环境搭建 本文是系列文章第四篇,来说说jenkins与svn的集成环境搭建 首先我们访问我们之前的jenkins 1.创建工程 源码管理 选择上图的添加,选择jenkins进行如下操作 配置好后,圈圈地方要选择上如下: 此时 Jenkins 的工作区中还没有代码,需要执行一次构建操作之后Jenkins 才会下载代码。 构建 构建后操作 选择添加容器找到对应的tomcat版本 手动构建 点击构建后 ...

qq_34136709的博客 550

搭建Jenkins+GitLab持续集成环境

通过本文的实战操作,我们已经完成了一套完整的Jenkins+GitLab持续集成与代码管理环境理论层面:理解了SDLC、敏捷开发、持续集成的核心概念;实操层面:部署了GitLab服务器,创建了团队群组、用户、项目,配置了权限;开发层面:掌握了Git代码提交、SSH免密配置的日常操作;集成层面:完成了Jenkins与GitLab的凭证对接,为自动化流程打下基础。代码集中管理:避免代码分散丢失,支持版本回溯;团队有序协作:通过权限控制,不同角色各司其职;

tzhou64452的博客 1253

Jenkins+Maven+SVN+Nexus 搭建持续集成环境

Jenkins+Maven+SVN+Nexus 搭建持续集成环境标签(空格分隔): JenkinsJenkinsMavenSVNNexus 搭建持续集成环境 一DevOps 二服务介绍 三环境搭建 四Jenkins构建项目 一、DevOps DevOps是“开发”和“运维”的缩写。 DevOps是一组最佳实践强调(IT研发、运维、测试)在应用和服务生命周期中的协作和沟通,强调整个组织的合作

i4t abcdocker的博客 2480

使用Jenkins+Calabash+Cocoapods搭建iOS持续集成环境

使用Jenkins+Calabash+Cocoapods搭建iOS持续集成环境 持续集成 持续集成究竟是什么呢?根据敏捷大师Martin Fowler的定义: “持续集成是一种软件开发实践。在持续集成中,团队成员频繁集成他们的工作成果,一般每人每天至少集成一次,也可以多次。每次集成会经过自动构建(包括自动测试)的检验,以尽快发现集成错误。许多团队发现这种方法可以显著减少集成引起的问题

臧成威的专栏 7324

基于Docker+Jenkins+GitHub搭建持续集成环境

一、为什么做持续集成、怎么做持续集成 搭建持续集成环境的目的,就是为了将部署流程规范化、自动化,节省人力、时间、稳定部署。 下图是Docker+Jenkins+GitHub的基本部署结构图。 开发者提交代码到git jenkins检测到版本更新,触发构建 构建任务:下载代码、maven打包、docker构建镜像、上传镜像库、重启镜像 下面开始逐步实现: 使用的服务器...

不忘初心,方得始终 1386

持续集成环境Jenkins的搭建和使用

这几天试着搭了个持续集成环境,我使用的是Jenkins,它的前身是Hadson,因为被Oracle收购了,所以换个名字继续开源,这个有点像MySQL。         持续集成总是跟敏捷开发什么的搞在一起,显得很高大上,其实它就是一个后台服务+web管理配置页面,它可以自动化(定时或事件触发)地执行某项任务,比如编译程序、打包程序、自动发布等等。这个在web开发或者大项目的多人合作上面很有帮助。

langresser的专栏 8026

基于 Jenkins 快速搭建持续集成环境

刘 华婷, 软件工程师, IBM 简介: 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础。Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续集成变成可能。本文正是从持续集成的基本概念入手,通过具体实例,介绍了如何基于 Jenkins 快速搭建持续集成环境。 发布日期: 2011 年 11 月 24 日  级别:

qingrx的专栏 1040

基于Docker+Jenkins+Gitlab搭建持续集成环境

文章目录基于Docker+Jenkins+Gitlab搭建持续集成环境实验环境实验过程server1(gitlab)server2(jenkins+docker)server1测试 基于Docker+Jenkins+Gitlab搭建持续集成环境 随着DevOps理念和敏捷理念的发展,我们希望通过自动化技术,加快项目的迭代。尤其是当使用微服务方案后,面临在大量的项目构建和部署工作,借助于jenki...

even160941的博客 1859

jenkins 持续集成环境从0到1搭建全过程

6、点击”继续”按钮后如出现如下图的报错信息:这是 jenkins 的一个Bug,解决方案是:通过地址 http://localhost:8080 访问 jenkins 项目即可。安装插件的时候,会有一些插件安装失败(如上图的X),这些插件的安装是有前置条件的,等安装结束后,按右下角“重试”,继续安装,之前失败的插件就都能安装了。安装完成后,点击“继续”按钮,输入用户名:admin,密码:123456,确认密码:123456,全名:admin,电子邮件地址后点“保存并完成”按钮。

iOS_HC的博客 658
上一篇: Postgresql psql工具
下一篇: Maven 基础
优秀小白熊
博客等级 码龄3年 1155粉丝 195原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值