我对Jenkins HTML Publisher插件有一个奇怪的问题,在Jenkins中查看时,我添加到报表中的所有奇特的CSS都被删除了。如果我将报告下载到本地,我可以看到CSS格式。 Jenkins中是否有允许查看CSS的设置?
我在詹金斯的HTML发布商设置:
在Jenkins中显示我的报告页面:
我的报告页面显示在本地:
答案 0 :(得分:117)
找出问题所在。在这里为其他用户分享。
由于Jenkins中的内容安全策略,CSS被剥离。 (https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy)
默认规则设置为:
sandbox; default-src 'none'; img-src 'self'; style-src 'self';
此规则集导致以下结果:
要放宽此规则,请转到
单击左侧的脚本控制台,然后输入以下命令:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
然后按“运行”。如果您看到输出为'结果:'在"结果"标题然后禁用保护。重新运行您的构建,您可以看到存档的新HTML文件将启用CSS。
答案 1 :(得分:10)
(以下解决方案适用于Windows。)
永久性解决方法是更改[Jenkins directory]\jenkins.xml
中的一行(对我来说是C:\Jenkins\jenkins.xml
)
<executable>java.exe</executable>
<arguments>[arguments are here]</arguments>
将以下参数添加到以空格分隔的参数列表中:
-Dhudson.model.DirectoryBrowserSupport.CSP=
然后重新启动Jenkins服务以获取更改。
答案 2 :(得分:9)
在 CentOs 中,启用html报告中的图片
sudo vi /etc/sysconfig/jenkins
JENKINS_JAVA_OPTION
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhudson.model.DirectoryBrowserSupport.CSP=\"default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;\""
即使在重新启动jenkins&#39;服务器强>
<强>指令强>
default-src : default-src是加载内容的默认策略,例如JavaScript,图像,CSS,字体,AJAX请求,框架,HTML5媒体 < / p>
img-src: 定义有效的图片来源。
来源值
<强>&#39;自我&#39; - 允许从同一来源(相同的方案,主机和端口)加载资源。
用法:
default-src 'self'
<强>&#39; unsafe-inline&#39; - 允许使用内联源元素,例如样式属性,onclick或脚本标记正文(取决于应用它的源的上下文)和javascript:URI。
用法:
default-src 'unsafe-inline'
<强>&#39; unsafe-eval&#39; - 允许不安全的动态代码评估,例如JavaScript eval()
用法:
default-src 'unsafe-eval'
数据 - 允许通过数据方案加载资源(例如Base64编码图像)。
用法:
img-src 'self' data:
请参阅有关内容安全政策here
的更多信息答案 3 :(得分:7)
转到“管理Jenkins” - &gt; “脚本控制台” 并在命令下运行:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
答案 4 :(得分:6)
您可以使用Vall答案中指定的groovy命令来解决此问题。
在詹金斯重新开始之前效果已经到位,之后你必须重新开始。
解决此问题的解决方案是配置一个在jenkins启动时为您执行此操作的作业。
您可以使用Startup Trigger plugin执行此操作。
安装后,创建一个新作业,您将需要检查构建触发器部分下的新复选框。
然后使用以下命令添加Execute系统Groovy脚本构建步骤:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")
保存,一切都应该有效。
答案 5 :(得分:5)
对于Ubuntu 14版本,有用的是特殊的插件:
https://wiki.jenkins-ci.org/display/JENKINS/Startup+Trigger - 开始jenkins启动工作
https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin - 运行System Groovy脚本
我找到了一份工作,从Jenkins重新开始并设置参数。
添加了系统Groovy脚本来设置参数。 System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”,“sandbox; img-src'self';”)
答案 6 :(得分:2)
转到
管理Jenkins->脚本控制台
并输入以下命令:
function wodarchive_entry($post_id = null) {
$termsArray = get_the_terms( $post_id, "category" );
//Get the terms for this particular item
$termsString = ""; //initialize the string that will contain the terms
foreach ( $termsArray as $term ) { // for each term
$category_id = $term->parent;//create a string that has all the slugs
if($category_id == '203'){
$termsString .= $term->name.' ';
}
}
echo $termsString;
}
然后按运行。如果您将输出作为“结果”显示,则重新运行构建,检查HTML报告格式
答案 7 :(得分:1)
在 CentOS 上,以下解决方案(在另一个答案的注释中建议)是唯一对我有用的解决方案:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;")
我的特定问题是Serenity BDD报表中缺少图像/ css。执行完这些步骤后,我的Serenity报告已正确渲染了所有图像/ css,包括在此更改之前执行 的内部版本的报告。 此解决方案也适用于任何已发布的基于html的报告。
答案 8 :(得分:0)
回应为时已晚,但想分享。
我在Tomcat上部署Jenkins时遇到了困难,尝试执行脚本,但如果tomcat重新启动它会有所帮助。
通过在tomcat中的catalina.properties中设置属性来进行永久性修复。
属性文件:tomcat_installation_dir / conf / catalina.properties 只需复制最后粘贴catalina.properties中的以下行(您可以将其设置为任何地方,以免混淆现有属性)
-Dhudson.model.DirectoryBrowserSupport.CSP = “”
答案 9 :(得分:0)
在向我的jenkins添加HTTPS后,我遇到了同样的问题。如果您遇到同样的问题,解决方案很简单 - 将Jenkins网址设置为使用HTTPS协议而不是HTTP。它可以通过jenkins配置进行配置 - &gt;詹金斯网址
答案 10 :(得分:0)
用于设置的永久创建Groovy脚本文件 $ JENKINS_HOME / init.groovy 或目录 $ JENKINS_HOME / init.groovy中的任何 .groovy 文件。 d / ,其中包含以下内容:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox allow-scripts; default-src 'self'; img-src *; style-src 'self' 'unsafe-inline'; script-src * 'unsafe-inline';")
systemctl重新启动詹金斯
https://wiki.jenkins.io/display/JENKINS/Post-initialization+script
答案 11 :(得分:0)
要在使用Jenkins-X的情况下永久设置系统属性,请在当前目录中创建文件myvalues.yaml
,其内容如下:
jenkins:
Master:
JavaOpts: >
-Dhudson.model.DirectoryBrowserSupport.CSP=
然后重新启动jenkins-x平台,可以通过升级它来完成:
$ jx upgrade platform --always-upgrade
# Presumably jx.exe is used if on Windows (not tested)
为避免实际升级平台,只需强行将其升级到相同版本:
$ version=$(jx version --no-version-check\
| grep 'jenkins x platform' | sed -e 's/^jenkins.\+ //')
$ jx upgrade platform --version ${version} --always-upgrade
答案 12 :(得分:0)
打开jenkins.xml文件并复制以下参数。它将永久修复。完成后,重新启动计算机。
<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -Dhudson.model.DirectoryBrowserSupport.CSP="sandbox allow-scripts; default-src 'self'; style-src 'self' 'unsafe-inline';" -jar "%BASE%\jenkins.war" --httpPort=8080 --webroot="%BASE%\war"</arguments
答案 13 :(得分:0)
对于那些使用asciidoctor-maven-plugin
插件从asciidoc文件生成HTML文档并将其进一步发布到Jenkins的用户,请更新插件配置,添加linkcss
属性:
<configuration>
<attributes>
<linkcss>true</linkcss>
</attributes>
<backend>html5</backend>
<outputDirectory>${project.build.directory}/generated-resources</outputDirectory>
</configuration>
答案 14 :(得分:0)
我们有一个更简单的解决方案。除非你真的坚持使用 HTML 报告,否则你可以只使用警告 NG 插件(无论如何这是一个好主意):
https://github.com/jenkinsci/warnings-ng-plugin/blob/master/SUPPORTED-FORMATS.md
我们将它用于 CodeNarc (Groovy),但也用于 Checkstyle、PMD、SpotBugs 和 Java 警告 (Java)。
答案 15 :(得分:-1)
在 Debian / Ubuntu 上,在aptitude installations中:
sudo vi /etc/default/jenkins
-Dhudson.model.DirectoryBrowserSupport.CSP=
添加到JAVA_ARGS
(例如JAVA_ARGS="-Dhudson.model.DirectoryBrowserSupport.CSP="
)service jenkins restart
这对我来说已经足够了,但是有关参数的完整列表,请参阅this answer。