- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Jenkins 2 编译 Java 项目,我想从 pom.xml 中读取版本,我正在遵循以下示例:
https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md
示例建议:
访问文件系统似乎存在一些安全问题,但我无法弄清楚它给出了什么(或为什么)该问题:
我只是做了一些与示例不同的事情:
def version() {
String path = pwd();
def matcher = readFile("${path}/pom.xml") =~ '<version>(.+)</version>'
return matcher ? matcher[0][1] : null
}
运行“版本”方法时遇到的错误:
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use method groovy.lang.GroovyObject invokeMethod java.lang.String java.lang.Object (org.codehaus.groovy.runtime.GStringImpl call org.codehaus.groovy.runtime.GStringImpl)
at org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists.StaticWhitelist.rejectMethod(StaticWhitelist.java:165)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:117)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:103)
at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:15)
at WorkflowScript.run(WorkflowScript:71)
at ___cps.transform___(Native Method)
at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:55)
at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:106)
at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:79)
at sun.reflect.GeneratedMethodAccessor408.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:100)
at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:79)
at sun.reflect.GeneratedMethodAccessor408.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:57)
at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:106)
at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:79)
at sun.reflect.GeneratedMethodAccessor408.invoke(Unknown Source)
我正在使用这些版本:插件管道2.1 Jenkins 2.2
最佳答案
快速修复解决方案:
我遇到了类似的问题,我通过以下方式解决了该问题
替代方案 1:禁用沙箱
如这个article深入解释一下,groovy 脚本默认在沙箱模式下运行。这意味着 Groovy 方法的子集无需管理员批准即可运行。也可以不在沙箱模式下运行脚本,这意味着整个脚本需要立即得到管理员的批准。这会阻止用户当时批准每一行。
在没有沙箱的情况下运行脚本可以通过取消选中脚本下方的项目配置中的此复选框来完成:
替代方案 2:禁用脚本安全性
如这个article解释了也可以完全禁用脚本安全性。首先安装permissive script security plugin然后更改您的 jenkins.xml 文件添加以下参数:
-Dpermissive-script-security.enabled=true
所以你的 jenkins.xml 看起来像这样:
<executable>..bin\java</executable>
<arguments>-Dpermissive-script-security.enabled=true -Xrs -Xmx4096m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=80 --webroot="%BASE%\war"</arguments>
如果您实现此操作,请确保您知道自己在做什么!
关于Jenkins CI 管道脚本不允许使用方法 groovy.lang.GroovyObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38276341/
自从我升级到 android studio 3.0.1 后,我无法继续我的应用程序。 Gradle 抛出以下错误:Gradle Sync Issues Error: Unable to load cl
我正在使用 Jenkins 2 编译 Java 项目,我想从 pom.xml 中读取版本,我正在遵循以下示例: https://github.com/jenkinsci/pipeline-plugin
尝试测试 Jersey Web 服务时出现错误 java.lang.NoClassDefFoundError: groovy/lang/GroovyObject Caused by: java.lan
固定 大家好,我现在可以正常工作了。原来我想念Groovy插件(感谢Peter)。请参阅下面的答案。原始文章留给引用。 我们是新来的grails,所有事物都在发展。我已经尝试过使用gradle来构建g
尝试测试 Jersey Web 服务时出错 java.lang.NoClassDefFoundError: groovy/lang/GroovyObject Caused by: java.lang.
在命令shelll中执行java类时出现如下异常 Exception in thread "main" java.lang.NoClassDefFoundError: groovy/lang/Groo
当我从 svn check out 一个新的 grails 项目时,出现了一些错误: 1.The project was not built since its build path is incom
这是我想要做的一个人为的例子,但最低限度地表达了所需的行为。我想引用正在调用属性访问的对象的实例。我首先尝试了“this”,但它指的是封闭类,而不是 MetaClass 或 String 实例。 St
我正在尝试使用Gradle进行基本构建。甚至gradle -v也失败,并显示以下内容: $ gradle -v FAILURE: Build aborted because of an interna
规范:Linux Mint 18.3、Eclipse 2019-06、Groovy 2.5.8、Java 11 我启动了一个 Groovy 项目,并在“源文件夹”下创建了一个包“test”。在测试中我
我有一个已编译的 grails 项目,并且从一个单独的 groovy 项目中,我反射性地加载了一个域类,如下所示 Class clazz = Class.forName('mypack.myclass
在尝试构建 Hadoop 2.0.5 时出现此错误: [ERROR] Failed to execute goal org.codehaus.mojo.jspc:jspc-maven-plugin:2
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use m
我是一名优秀的程序员,十分优秀!