Jenkins配置自定义MIME类型,实现归档工件浏览器直接查看
解决Jenkins归档无.log后缀日志无法在浏览器直接查看的问题
我之前也碰到过一模一样的糟心事,改web.xml触发签名验证失败,又没法给日志改后缀,试了几个实用方法都能解决,分享给你:
1. 用MIME Type Plugin做可视化配置(最省心)
这个插件专门用来管理Jenkins的MIME类型映射,完全不用碰web.xml,Jenkins更新后也不会失效:
- 先在Jenkins的「Manage Jenkins」->「Manage Plugins」里搜索安装MIME Type Plugin
- 安装完成后进入「Manage Jenkins」->「Configure System」,找到「MIME Types」配置区
- 点击「Add MIME Type」,在「File pattern」里填你的日志文件匹配规则(比如你的日志是
build-output这类无后缀文件,就填build-output;如果是某类后缀比如*.result就填这个),「MIME Type」固定填text/plain - 保存配置后再访问归档的日志,Chrome就会直接在浏览器里展示纯文本内容了
2. 通过Jenkins启动参数添加MIME映射(不用装插件)
如果不想额外装插件,可以直接给Jenkins加JVM启动参数,同样绕开修改web.xml:
- 找到Jenkins的启动配置文件(比如Ubuntu是
/etc/default/jenkins,CentOS是/etc/sysconfig/jenkins) - 在
JAVA_ARGS里追加参数:-Dhudson.util.FileExtensionFilter.MIME_TYPES=你的文件规则:text/plain,比如你的日志是无后缀的build-log,就写-Dhudson.util.FileExtensionFilter.MIME_TYPES=build-log:text/plain;如果是一批类似命名的文件比如*-log,就写*-log:text/plain - 重启Jenkins后,这个映射就会生效,浏览器会自动把匹配的文件识别为纯文本
3. 用Pipeline配合HTML Publisher Plugin间接展示日志
如果上面两种方法都不适用,还可以把日志转成HTML在Jenkins内直接查看:
- 先安装HTML Publisher Plugin
- 在你的Jenkinsfile里添加一段脚本,读取日志内容生成HTML页面:
stage('Archive & View Logs') { steps { script { // 读取目标日志文件内容 def logContent = readFile(file: 'your-target-log') // 生成带<pre>标签的HTML,保留日志原格式 writeFile file: 'log-viewer.html', text: "<html><body><pre>${logContent}</pre></body></html>" // 同时归档原日志和HTML文件 archiveArtifacts artifacts: 'your-target-log, log-viewer.html', fingerprint: true // 发布HTML视图 publishHTML(target: [ allowMissing: false, keepAll: true, reportDir: '.', reportFiles: 'log-viewer.html', reportName: 'Build Log Viewer' ]) } } }
这样在Jenkins构建页面会多出一个「Build Log Viewer」入口,点击就能直接查看格式化后的日志,不用下载原文件
内容的提问来源于stack exchange,提问作者38leinad
相关产品推荐
相关产品推荐

