解析xml文件,修改Jenkins的配置

《Jenkins从零到壹》jenkins问题 原来默认安装,会把数据存储到**%LocalAppData%\Jenkins.jenkins** 下。以上是字节二面的一些问题,面完之后其实挺后悔的,没有提前把各个知识点都复习到位。MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理。MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理。环境变量参数改掉,不建议直接放系统盘C盘下,改到其他盘下。启动后,是以服务启动的,所以要先停止服务。,现在起闭关修炼半个月,争取早日上岸!环境变量参数的值,然后保存。配置文件,这里配置了一个。 阅读详情

转载自:https://www.cnblogs.com/chongyou/p/7600547.html

最近因为服务器移动,在Jenkins中配置的一些地址之类的,都要改变,如图,我因为使用插件Sidebar Links增加一个链接地址,现在地址变了,所以在Jenkins中配置就需要改动link url的地址,如图:


要改变成地址为:192.168.11.11,因为Jenkins的文件配置都是xml文件,我读取对应的xml文件,把文件内容进行更改在重写xml文件,xml文件如下。因为每个项目的url都需要更改,所以工作量还是很大的,所以写了个程序,去找到Jenkins下面所有的job,然后去更改Jenkins中的config.xml配置文件,就ok了


package other;
 
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
 
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
 
import bsh.This;
import until.publicmethod;
 
public class xmlDom {
    static String path;//获取的路径
    static Document document;
    static String  jointURl;
       
    /**
     *
    * @测试点: 遍历指定目录,获取文件路径
      @param @param filePath
      @param @return  
    * @备注: List<String> 
    * @author zhangjun
    * @date 2017年9月18日
      @修改说明
     */
    public static List<String> geturl(String filePath) {
        List<String> list = new ArrayList<String>();
        File root = new File(filePath);
        File[] files = root.listFiles();
        for (File file : files) {
            if (file.isDirectory()) {
                list.add(file.getAbsolutePath());
                //System.out.println("显示" + filePath + "下所有子目录及其文件" + file.getAbsolutePath());
            }
        }
        return list;
    }
 
     
     
/**
 *
* @测试点: 读取Jenkins的xml文件,修改指定的节点
* @验证点: TODO(这里用一句话描述这个方法的作用)
*   @param @param url   需要传入的修改的xml文件路径
* @备注: void 
* @author zhangjun
* @date 2017年9月18日
  @修改说明
 */
    public static void readerXml(String url) {
        SAXReader reader = new SAXReader();
        System.out.println("获取的url:"+jointURl);
        try {
            document = reader.read(new File(url));
            // 通过reader对象的read方法加载books.xml文件,获取docuemnt对象。
            Element bookStore = document.getRootElement();
            // 通过element对象的elementIterator方法获取迭代器
            Iterator it = bookStore.elementIterator();
            // 遍历迭代器,获取根节点中的信息(书籍)
            while (it.hasNext()) {
                // System.out.println("=====开始遍历=====");
                Element jenkinsjob = (Element) it.next();
                // 获取book的属性名以及 属性值
 
                // 解析子节点的信息,这个下面是否可以做优化,目前没有好的方案
                Iterator  jobs= jenkinsjob.elementIterator();
                while (jobs.hasNext()) {
                    Element Child = (Element) jobs.next();             
                    /*System.out.println("节点名:" + Child.getName() + "--节点值:" + Child.getStringValue());*/
                    if (Child.getName().equals("hudson.plugins.sidebar__link.ProjectLinks")) {
                         
                        Iterator node = Child.elementIterator();
                        while (node.hasNext()) {
                            Element Child2 = (Element) node.next();
                            System.out.println("节点名2:" + Child2.getName() + "--节点值2:" + Child2.getStringValue());
 
                            Iterator node2 = Child2.elementIterator();
                            while (node2.hasNext()) {
                                Element Child3= (Element) node2.next();
                                System.out.println(
                                        "节点名3:" + Child3.getName() + "--节点值3:" + Child3.getStringValue());
 
                                Iterator node3 = Child3.elementIterator();
                                while (node3.hasNext()) {
                                    Element Child4 = (Element) node3.next();
                                    System.out.println(
                                            "节点名4:" + Child4.getName() + "--节点值4:" + Child4.getStringValue());
                                    if (Child4.getName().equals("url")) {
                                        Child4.setText("http://192.168.11.11:8080/jenkins/job/new_rosewholesale_conventionpay/");
                                    }
                                    break;
                                }
                            }
 
                        }
                    }
 
                }
            }
 
        } catch (DocumentException e) {
            e.printStackTrace();
            System.out.println("读取文件错误");
        }
        /**
         * 写入文件,重新生成xml文件
         */
        try {
            XMLWriter writer = new XMLWriter(new FileWriter(url));
            writer.write(document);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("写入文件错误");
        }
    }
     
    //DOM4J 方式解析XML
      
    public static void main(String[] args) {
         List<String> filespath=geturl("D:\\test\\test2\\");
         for(int i=0;i<filespath.size();i++){
            String  filepath=filespath.get(i);
            readerXml(filepath+"\\config.xml");
         }
       
    }
 
}

image

这样就可以更新xml文件了,不用手动去改动,但是这个时候公司已经做了域名映射,所以还是没有派上用场,可以先记录下吧

Python爬虫实战:巧用HEAD请求和Cookie令牌绕过沃尔玛反爬(附完整代码) 本文详细介绍了如何利用Python爬虫技术,通过HEAD请求和Cookie令牌绕过沃尔玛的反爬机制。文章深入解析了人机验证系统的运作原理,并提供了完整的工程化实现代码,包括令牌池设计、高并发架构和异常处理策略,帮助开发者高效采集电商数据。 阅读详情

相关推荐

Win10和Ubantu16.04双系统下,卸载Ubantu

Win10和Ubantu16.04双系统下,卸载Ubantu 机器配置 华硕主板,英伟达显卡(这不是重点) Win10与Ubantu16.04均为UFFI分区(如果不知道这个也不需要在意,一般默认的都是这样,鸵鸟原则) 清除Ubantu系统 一般按照常规的方法来删除Ubantu,都是直接将磁盘管理器里面的关于Ubantu的磁盘清空,但是还会留下一个UFFI分区,如果不进行删除的话,开机时候还是会有...

qq_33289694的博客 390

jenkins执行bat失败_使用Jenkins持续集成的一些经验总结

1git clone失败 : Killed by signal 15场景:jenkins项目clone代码时,出现任务被kill掉的情况,导致出现以下错误信息:通过查看控制台的输出日志,可以看出原因是因为超时了。如果在限制时间内代码都没有clone完成,那么就任务就会被强制杀死:解决方法:当所需要clone的版本库过大或服务器网速较差时,clone的时间会超过默认的10分钟。因此需要修改...

weixin_34746495的博客 2564

Python入门基础教程(非常详细)

Python是一门开源免费、通用型的脚本编程语言,它上手简单,功能强大,坚持「极简主义」。Python类库(模块)极其丰富,这使得Python几乎无所不能,不管是传统的Web开发、PC软件开发、Linux运维,还是当下火热的机器学习、大数据分析、网络爬虫,Python都能胜任。这套Python基础教程不是教科书,不会玩弄概念,而是力求口语化和通俗化,让读者尽快入门。如果有小朋友出于兴趣学习Python,请引导他阅读本教程的前半部分,这是基础,可以降低学习成本;...

Yuki1127918的博客 34万+

[Jenkins]使用

Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。 Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。

qq_39792512的博客 1882

AI大模型驱动Web UI自动化测试:Playwright与RobotFramework智能整合实践

Web自动化测试是软件质量保障的关键环节,其核心原理是通过脚本模拟用户操作,对Web应用界面进行功能验证。传统方法依赖固定的元素定位和脚本逻辑,在应对频繁的UI变更时面临维护成本高、脚本脆弱的挑战。随着AI大模型技术的发展,其强大的自然语言理解和代码生成能力为自动化测试带来了新的技术价值。通过将大模型的意图理解与代码生成能力,与Playwright强大的浏览器自动化执行引擎以及RobotFramework灵活的关键字驱动框架相结合,可以构建出能够理解自然语言指令、动态生成稳定操作脚本的智能测试系统。这种融合

weixin_28718769的博客 412

谈谈jenkins:config.xml文件解读(三)

1. 可执行进程数<numExecutors>5</numExecutors> 2. 角色和角色权限 3.视图列表 <?xml version='1.1' encoding='UTF-8'?> <hudson> <disabledAdministrativeMonitors/> <version>2.187</v...

hacker_Lees的博客 4255

实战解析:利用Wireshark解密QQ通信协议

本文提供了一份利用Wireshark工具分析QQ通信协议的实战指南。文章详细介绍了从环境准备、捕获数据包到解析协议层的完整流程,重点演示了如何识别QQ号码字段、观察加密数据特征以及区分不同通信类型(如文本、文件传输)。通过此实践,读者可以深入理解网络分层模型和现代应用加密通信机制,提升网络协议分析与安全诊断能力。

weixin_29210727的博客 407

python xml 解析_python xml解析小小结

工作中遇到解析jenkins的配置文件,通过python-jenkins取到的是 xml 对象,正好 复习了一下 xml的解析。如下(参考官方文档):官方链接:https://docs.python.org/2.7/library/xml.etree.elementtree.htmlxmltest.xml 内容如下22008141100520115990069201113600xml文件处理# -...

weixin_39866867的博客 77

【MATLAB代码】蚁群算法(Ant Colony Optimization, ACO)路径规划(避障)仿真程序,订阅专栏后可直接查看完整源代码

基于蚁群算法的路径规划系统。可自定义起点、终点和障碍物地图,系统通过蚁群算法自动计算最优路径,并输出路径坐标、障碍物地图和收敛曲线。完整MATLAB源代码直接运行。适用于复杂障碍环境下的路径优化问题。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 3091

PhotovoltaicPanelCleanlinessDetector:基于YOLOv8的光伏板清洁状态监测系统

data.yamlyaml复制编辑names:0: clean1: dust3: leaves4: shadow✅ 高精度污染识别✅ 具备实时检测与UI展示✅ 可本地化部署应用未来方向增加污染程度分级(轻度、中度、严重)加入时间序列分析(污染变化趋势预测)无人机集成巡检模块。

YOLO 275

Jenkins密码重置实战:通过config.xml恢复管理员访问

Jenkins作为主流CI/CD平台,其认证机制依赖配置驱动而非数据库存储,核心凭证以BCrypt哈希形式固化在config.xml中。理解SecurityRealm与AuthorizationStrategy的协同原理,是实现安全、合规密码恢复的技术基础。该机制赋予运维人员在无原始凭据前提下,通过直接编辑配置文件完成账户重置的能力,兼具技术可控性与操作合法性。典型应用场景包括Docker环境配置卷挂载异常、交接文档缺失导致的密码遗忘、以及临时接管系统的低权限修复。本文聚焦Jenkins密码与config.

weixin_33762130的博客 352

python 实现一个完整的基于Python的多视角三维重建系统,包含特征提取与匹配、相机位姿估计、三维重建、优化和可视化等功能

本文介绍了一个基于Python的多视角三维重建系统的实现,涵盖了特征提取与匹配、相机位姿估计、三维重建、优化和可视化等功能。首先,系统通过安装必要的库(如OpenCV、NumPy等)并加载图像数据,初始化相机参数。接着,系统使用SIFT、SURF或ORB算法提取图像特征点,并通过FLANN或BF方法进行特征匹配,应用Lowe's ratio test筛选优质匹配。该系统为后续的相机位姿估计和三维重建奠定了基础,能够从多视角图像中恢复三维场景结构。

huanghm88的专栏 614

python xml解析小小结

工作中遇到解析jenkins的配置文件,通过python-jenkins取到的是 xml 对象,正好 复习了一下 xml的解析。如下(参考官方文档):官方链接:https://docs.python.org/2.7/library/xml.etree.elementtree.htmlxmltest.xml 内容如下<?xmlversion="1.0"?&g...

weixin_34198881的博客 114

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python解析jmeter.jtl文件_jtl文件解析(jmeter+jenkins+python实现接口自动化)

网上搜索出jmeter压测结果解析成html文件的博客分享很多,但是并不能达到我自己的测试预期,因此采用Python解析jtl文件,解析结果直接展示用例通过和失败的数目,以及失败的用例标题,如下图所示: 搭建步骤:1. 安装tomcat2. 安装jenkinsb并进行配置其他:使用Python解析jtl文件一、 安装tomcat1.1 下载tomcat安装包1.2 拷贝文件到Library目录下并...

weixin_42346693的博客 777

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Jenkins02:Jenkins+maven+svn集成

1、安装Maven并配置环境变量 下载maven(windows下载zip包,linux下载tar.gz包),然后配置环境变量 在项目中使用maven,可以从java中央仓库中获取到项目所依赖的jar包,才能完成项目的部署。 1.1 Linux配置环境变量内容 export MAVEN_HOME=/usr/local/apache-mave...

aiwanwen7584的博客 186

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Jenkins密码重置本质与安全机制解析

Jenkins身份认证是一种应用级隔离的自包含安全体系,其核心在于$JENKINS_HOME目录下的XML配置驱动用户凭证管理,而非系统账户或外部目录服务。该机制基于HudsonPrivateSecurityRealm实现本地密码哈希存储,采用jbcrypt加盐加密,且加载顺序严格依赖config.xml中的<useSecurity>开关与users/目录结构。技术价值在于高内聚、低耦合的权限控制模型,适用于离线环境与强合规场景;典型应用场景包括金融行业CI/CD审计、国产化操作系统(如麒麟V10)运维及L

weixin_32050773的博客 265

jenkins 安装提示离线并且不能安装插件的记录

[root@169_test jenkins]# more updates/default.json {"connectionCheckUrl":"https://www.baidu.com/", goole 变成baiduhttp变成https [root@169_test jenkins]# cat hudson.model.UpdateCenter.xml <?xml version=...

weixin_34150224的博客 390

接口自动化测试(使用testng,reportng,maven,jenkins)

文章记录关键的几个步骤 1.testng中使用reportng的测试报告,配置在测试文件的xml中 可以通过这种方式进行参数传递 testng的测试xml中   代码中 @BeforeSuite @Parameters({"openReport"}) public static void beforeSuite(String openReport) p

莫忘精彩 4668

jenkins 通过maven部署Tomcat8报错

问题过程   jenkins执行构建过程中,可以在workspace/项目名/target/目录下产生xxx.jar文件  但是在执行构建后操作时报出如下错误 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------...

weixin_30410999的博客 731

Jenkins换源后插件下载失败的完整排查指南

在持续集成实践中,Jenkins插件源的可用性直接影响构建环境的初始化效率。许多团队更换国内镜像源后仍会遇到插件下载超时、PKIX证书错误或列表刷新正常而安装失败等问题,根源往往不在镜像地址本身,而在于更新中心配置、JSON内下载链接分裂、JDK证书信任链与版本兼容性等多重因素。本文基于常见故障现象,从更新中心配置原理出发,拆解镜像源验证、证书导入、缓存清理等工程实践细节,并给出本机三步验证法、手动安装hpi及插件清单沉淀等长期可落地的兜底方案,帮助DevOps工程师快速定位并解决Jenkins插件源相关疑

weixin_33226548的博客 213

告别手动改参数!用Python脚本批量执行JMeter压测的保姆级教程

本文提供了一份详细的Python脚本批量执行JMeter压测的教程,帮助性能测试工程师告别手动修改参数的繁琐流程。通过动态替换JMX文件参数、批量执行测试和智能归档报告,实现全流程自动化,大幅提升工作效率。教程涵盖环境配置、核心代码实现和高级功能扩展,适合需要优化性能测试流程的开发者和测试工程师。

weixin_30279315的博客 292

Junie Agent 模式误改 Maven 多模块 pom.xml:Spring Boot ...

Junie 的 Agent 模式价值毋庸置疑,但它对 Maven 多模块项目的依赖管理结构缺乏感知。核心教训有三条:构建文件必须加入 Agent 操作白名单;父模块依赖锁定需要 Enforcer 做兜底;CI 环境和本地 IDE 的依赖解析行为不一致,问题往往在 CI 上才暴露。#后端 #Java #SpringBoot #Maven #JetBrains你在实际项目中有遇到类似问题吗?欢迎在评论区分享你的经验和解决方案。

181

python修改config.xml文件,调用Jenkins API接口创建带参数的Job

python创建config.xml文件,调用Jenkins API接口创建Job

运维@小兵的博客 1555

Python-jenkins模块批量配置jobs

介绍Python-Jenkins如何批量修改某视图页面下的jobs,包括新增、修改和删除配置

Sudley的博客 1754
上一篇: Eclipse for Mac 调试快捷键设置
下一篇: Zookeeper相关
intelrain
博客等级 码龄10年 3936粉丝 216原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值