栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Jenkins的日志更改

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Jenkins的日志更改

// This is a deliciously convoluted and fragile hack to force Jenkins to show the
// changes via a Groovy Postbuild script:

// fake a Subversion changelog.xml filechanges = new File(manager.build.getRootDir(), "../../workspace/changes.txt")changelog = new File(manager.build.getRootDir(), "changelog.xml")changelog.withWriter {  out ->out.println("<?xml version="1.0" encoding="UTF-8"?><log><logentry revision=""  + manager.build.number + ""><date>"  + new java.util.Date() + "</date><paths>")message  = ""changes.eachLine {   line ->     if (line.startsWith("./")) line = line.substring(2)     if (!".checksums".equals(line)) {       out.println("<path action="M">" + line + "</path>")       message += line + "n"    }   }  out.println("</paths><msg>" + message + "</msg></logentry></log>")}// get an instance of the SubversionChangeLogParserimport java.net.URL;import java.net.URLClassLoader;baseDir = new File(jenkins.model.Jenkins.getInstance().getRootDir(),  "plugins/subversion/WEB-INF/")urls = new URL[2];urls[0] = new File(baseDir, "classes/").toURI().toURL() urls[1] = new File(baseDir, "lib/svnkit-1.3.4-hudson-2.jar").toURI().toURL() loader = new URLClassLoader(urls,  manager.getClass().getClassLoader())svn = loader.loadClass("hudson.scm.SubversionChangeLogParser").newInstance()// force the current build to take that parser, parse the changelog.xml,// and force it down AbstractBuild's throat, tooscmField = manager.build.getClass().getSuperclass().getSuperclass().getDeclaredField("scm")scmField.setAccessible(true)scmField.set(manager.build, svn)changeSet = svn.parse(manager.build, changelog)changeSetField = manager.build.getClass().getSuperclass().getSuperclass().getDeclaredField("changeSet");changeSetField.setAccessible(true)import java.lang.ref.WeakReference;if (changeSetField.getDeclaringClass().isAssignableFrom(WeakReference.class))  changeSet = new WeakReference(changeSet)changeSetField.set(manager.build, changeSet)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/399692.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号