最近因为服务器移动,在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");
} } }

  

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

解析xml文件,修改Jenkins的配置的更多相关文章

  1. 使用DOM解析XML文件,、读取xml文件、保存xml、增加节点、修改节点属性、删除节点

    使用的xml文件 <?xml version="1.0" encoding="GB2312" ?> <PhoneInfo> <Br ...

  2. Java Web的web.xml文件作用及基本配置(转)

    其实web.xml就是asp.net的web.config一个道理. 说明: 一个web中完全可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的. web.xml文件是用来 ...

  3. 深入浅出如何解析xml文件---上篇

    xml小伙伴们并不陌生,xml是可扩展标记语言,标准通用标记语言语言的子集,是一种用来标记电子文件使其具有结构性的标记语言.我们知道xml可以用dom与sax等方法进行解析,但是xml为什么要解析呢? ...

  4. 【转载】Java Web的web.xml文件作用及基本配置

    其实web.xml就是asp.net的web.config一个道理. 说明: 一个web中完全可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的. web.xml文件是用来 ...

  5. 曹工说Spring Boot源码(9)-- Spring解析xml文件,到底从中得到了什么(context命名空间上)

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

  6. Java解析XML文件的方式

    在项目里,我们往往会把一些配置信息放到xml文件里,或者各部门间会通过xml文件来交换业务数据,所以有时候我们会遇到“解析xml文件”的需求.一般来讲,有基于DOM树和SAX的两种解析xml文件的方式 ...

  7. Android开发学习---使用XmlPullParser解析xml文件

    Android中解析XML的方式主要有三种:sax,dom和pull关于其内容可参考:http://blog.csdn.net/liuhe688/article/details/6415593 本文将 ...

  8. 使用dom4j创建和解析xml文件

    使用dom4j创建和解析xml文件 在项目开发中,我们经常会遇到xml文件的创建和解析从别人接口得到的xml文件,而我们最常使用的组件是dom4j. 下面我就以代码来讲解一下如何使用dom4j来创建x ...

  9. 【JAVA使用XPath、DOM4J解析XML文件,实现对XML文件的CRUD操作】

    一.简介 1.使用XPath可以快速精确定位指定的节点,以实现对XML文件的CRUD操作. 2.去网上下载一个“XPath帮助文档”,以便于查看语法等详细信息,最好是那种有很多实例的那种. 3.学习X ...

  10. Java 创建过滤器 解析xml文件

    今天写了一个过滤器demo,现在是解析actions.xml文件,得到action中的业务规则:不需要导入任何jar包 ActionFilter过滤器类: package accp.com.xh.ut ...

随机推荐

  1. linux中swap的构建

    一.使用物理分区构建swap 1.分区 [root@server3 ~]# fdisk /dev/vdb Welcome to fdisk (util-linux 2.23.2). Changes w ...

  2. 阿里Java开发规约插件使用

    刚刚的云栖大会上,阿里巴巴公布了这款酝酿已久的Java开发规约插件,对于国内开发者来说是一次轻松提高自己代码规范的机会. 安装方法 IDEA安装方法: settings >> plugin ...

  3. sql replace()函数的用法

    replace()函数的用法: replace('带操作的字符串','被换掉的内容'[要换的内容,可写可不写默认为null]) 先上一张图 下面我门对jxid进行操作: select replace( ...

  4. 对Vue.js的认知

    一.什么是MVVM? MVVM是Model-View-ViewModel的缩写.MVVM是一种设计思想.Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑:View 代表UI ...

  5. from表单,图片预览,和表单提交

    <form> <input id="file" class="topsub-file" type="file" name= ...

  6. 干货-Spring3.2.3的所有注解

    在用到Spring3的时候,我们需要对耦合的struts2的Action层或者SpringMVC的Controller层加上注解,一般是@Controller和@RequestMapping 看到这里 ...

  7. oracle数据库代码块

    --申明变量.游标 declare a ):'; --逻辑 begin INSERT into TEMP_DSF.TEST VALUES (a); end; tips:mysql不支持匿名块.仅在存储 ...

  8. fiddler中安装证书进行https协议的抓取

    Fiddler目前默认安装对http协议进行抓取但是对手机以及其他一些是https协议的通讯抓取需要配置. 电脑Fiddler设置: 1.首页我们要在fiddler中找到菜单栏的Tools > ...

  9. JVM发展史和Java运行时内存区域

    目前三大主流JVM: Sun HotSpot:Sun于1997年收购Longview Technologies公司所得.Sun于2009年被Oracle收购. BEA JRockit:BEA于2002 ...

  10. Java-IO读写文件简单操作2

    承接Java-IO读写文件简单操作,这里再次写个小demo巩固一下知识点. 代码文件:demo.java package com.test.demo; import java.io.*; public ...