解决jenkins无法安装插件以及css样式无法显示问题

本文分享了作者在jenkins搭建过程中遇到的挑战,包括连接更新站点的SocketTimeoutException、依赖插件安装、版本兼容问题及css样式加载问题。重点介绍了如何解决防火墙限制、手动安装插件和修复HTMLPublisherplugin的配置。

前言

好久没写过博客了,今天正好有空,聊一下jenkins安装过程中我所遇到的问题,希望也能帮助到大家!
因为项目有个需求是去执行相关财务报表的数据校验工作,所以安排到我负责搭建jmeter+ant+jenkins的自动化测试框架软件,实现财务报表的定时自动校验以及发送邮件操作!

jmeter+ant+jenkins测试框架搭建

这个框架搭建我这里就不过多赘述了,网上一堆大神都有博客说明,大家自行百度搜索就好了

遇到的第一个问题:检查更新站点时出错:SocketTimeoutException:连接超时

这个问题是因为jenkins无法成功连接到更新站点提示的,百度的方法是更换升级站点网址链接:

http://mirror.xmission.com/jenkins/updates/update-center.json

但我思来想去发现是服务器未开通外网防火墙的问题,所以这个通过连接站点来更新插件的路不通了,那就只能通过下载相关的插件包来安装ant以及HTML Publisher plugin等相关插件包了
相关插件包下载站点:jenkins相关插件包下载地址
下载后进入
在这里插入图片描述
然后进来到此地址将下载下来的hpi文件进行上传安装
在这里插入图片描述

第二个问题:插件包安装时报错,无法安装

插件包通过文件安装时,他会自动检查是否有其他依赖包可以支持当前插件安装的,所以如果安装出错去查看报错信息就能看到那个插件没有安装了,然后再去插件下载地址下载相关的包先安装后在安装需要的那个插件就好了,我这边整理了我安装HTML Publisher plugin所需要的插件包了
特别注意!!错误处会提示你安装什么版本的,这边建议都安装最新版,不然可能安装其他插件包时又会因为你这个插件版本低又安装不了了!
在这里插入图片描述

第三个问题:插件版本安装了低版本导致其他插件无法安装,但是插件又无法在前端卸载

在这里插入图片描述
可以看到上面的html是依赖于下面的这些插件才得以运行的,那如果下面的这些插件安装到低版本导致其他插件无法安装咋整嘞,jenkins启动后的默认目录是在/root目录下的,这个如果你是服务器root用户的话就好解决直接进入到/root/.jenkins去删除相关的插件文件重新安装新版本就好了,如果不是的话就比较麻烦,只能叫同事有root权限的用户去操作删除,那这时候如果不想这么麻烦的话就可以通过修改jenkins的配置目录路径,就可以把jenkins的配置目录文件放到自己可以操作的目录下进行相关操作
更改默认路径参考这位大神的博客

第四个问题:html报告无法加载css样式

解决方法:
1、安装Groovy Postbuil插件
2、重新启动jenkins
3、进入构建项目设置点击build
4、点击Execute system Groovy script
5、在 groovy script 输入框下输入
System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”, “”)
System.setProperty(‘org.apache.commons.jelly.tags.fmt.timeZone’, ‘Asia/Shanghai’)
6、保存即可

结语

May the beauty of the world be linked with you

### 问题分析 在 Jenkins显示 HTML 报告时,图片无法加载的问题通常与 Jenkins 的安全策略、资源路径解析或插件限制有关。Jenkins 为了防止 XSS 攻击,默认会限制 HTML 报告中对 `<script>` 和 `<style>` 标签的执行,同时也会限制外部资源(如图片、CSS 文件)的加载[^1]。此外,HTML 报告中使用的相对路径在 Jenkins 的上下文中可能无法正确解析,导致资源加载失败。 ### 解决方案 #### 1. 使用 Base64 编码嵌入图片资源 为了避免路径问题,可以将图片以 Base64 编码的形式直接嵌入到 HTML 文件中。这种方式确保图片作为 HTML 文件的一部分被加载,Jenkins 的路径限制。 ```html <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGA..." /> ``` #### 2. 使用 Jenkins 的静态资源目录 Jenkins 提供了一个静态资源托管目录(`$JENKINS_HOME/userContent`),可以将图片、CSS 或 JavaScript 文件放置于此目录下,并通过绝对 URL 访问这些资源。例如: ```html <img src="http://<jenkins-url>/userContent/images/report.png" /> ``` 这种方式确保资源路径会因为 Jenkins 的安全策略而失效。 #### 3. 修改 Jenkins 的内容安全策略(CSP) Jenkins 默认对 HTML 内容应用了严格的内容安全策略(Content Security Policy, CSP),限制外部资源的加载。可以通过修改 Jenkins 的 CSP 设置来允许加载图片等资源。 在 Jenkins 的脚本控制台中运行以下命令,禁用 CSP: ```groovy System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "") ``` 此设置允许 Jenkins 正常加载 HTML 报告中的图片和其他资源[^1]。 #### 4. 使用 Jenkins 插件支持内联资源 某些 Jenkins 插件(如 `HTML` 插件)允许更灵活地处理 HTML 报告内容,支持内联样式和脚本。确保使用此类插件,并正确配置 HTML 报告的发布路径和文件结构。 #### 5. 检查 Jenkins 日志以排查资源加载错误 如果图片仍然无法加载,可以查看 Jenkins 的浏览器控制台日志,检查是否存在 403、404 错误或其他资源加载失败的信息。这些日志有助于定位路径或权限问题。 ### 示例:使用 Base64 嵌入图片的 HTML 文件结构 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Test Report</title> </head> <body> <h1>Test Summary</h1> <p>This is a test report with embedded image.</p> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGA..." /> </body> </html> ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值