在Jenkins中安装ruby运行时时时出错

在Jenkins中安装ruby运行时时时出错,ruby,jenkins,cucumber,Ruby,Jenkins,Cucumber,我尝试在Jenkins中安装ruby runtime、rvm和cucumber插件 在安装ruby运行时插件时,遇到以下错误: java.io.IOException: Failed to dynamically deploy this plugin at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:1328) at hudson.model.UpdateCenter$DownloadJob.r

我尝试在Jenkins中安装ruby runtime、rvm和cucumber插件

在安装ruby运行时插件时,遇到以下错误:

java.io.IOException: Failed to dynamically deploy this plugin
    at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:1328)
    at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:1126)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:110)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Failed to install ruby-runtime plugin
    at hudson.PluginManager.dynamicLoad(PluginManager.java:487)
    at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:1324)
    ... 5 more
Caused by: java.io.IOException: Failed to initialize
    at hudson.ClassicPluginStrategy.load(ClassicPluginStrategy.java:441)
    at hudson.PluginManager.dynamicLoad(PluginManager.java:478)
    ... 6 more
Caused by: java.lang.ClassCircularityError: org/jruby/RubyClass
    at java.lang.Class.forName0(Native Method)
    ...
如何修复它?提前谢谢

这是一个众所周知的问题。 有一个解决办法:

/etc/default/jenkins

-Dhudson.ClassicPluginStrategy.noBytecodeTransformer=true 

JAVA_ARGS="$JAVA_ARGS -Dhudson.ClassicPluginStrategy.noBytecodeTransformer=true"

目前还没有您可以看到的最终解决方案。

在OSX上,我不得不编辑
/Library/Application Support/Jenkins/Jenkins runner.sh

在定义
javaArgs
后的某个点添加这些行

# workaround for ruby runtime install issue
# per http://stackoverflow.com/questions/33883551/error-installing-ruby-runtime-in-jenkins
javaArgs="$javaArgs -Dhudson.ClassicPluginStrategy.noBytecodeTransformer=true"
也许有一种更像mac的方法可以做到这一点

重新启动Jenkins后,已经下载的ruby运行时插件开始工作,同样下载的rvm插件也开始工作,这也是我一直在寻找的插件。

在Windows上, 添加参数

-Dhudson.ClassicPluginStrategy.noBytecodeTransformer=true
正如@lvthillo所说,在jenkins.xml文件中,我的工作方式是

-Xrs-Xmx256m-Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle-Dhudson.ClassicPluginStrategy.noBytecodeTransformer=true-jar“%BASE%\jenkins.war”--httpPort=8081--webroot=“%BASE%\war”

jenkins.xml
文件中添加
-Dhudson.classicluginstrategy.noBytecodeTransformer=true
对我不起作用(Windows,jenkins 2.277.1)


因此,我刚刚从
Plugins
文件夹中删除了
ruby runtime
的所有文件(您需要关闭Jenkins服务)并再次启动Jenkins。

我通过将java版本更改为第8版来解决这个问题。 可能是Java11兼容性问题。 1-

2-在Centos上删除
/var/lib/jenkins/plugins

-Dhudson.ClassicPluginStrategy.noBytecodeTransformer=true 

JAVA_ARGS="$JAVA_ARGS -Dhudson.ClassicPluginStrategy.noBytecodeTransformer=true"
3-从下载ruby-runtime.hpi插件


4-在jenkins中上传插件
/pluginManager/advanced

非常感谢!我在windows中安装了Jenkins。我在哪里可以找到这些文件?我刚刚上传了上面问题中Jenkins文件夹结构的截图。我认为它在Windows中是Jenkins.xml,但我不确定(没有在Windows上尝试)。很抱歉回复太晚。我正在以Tomcat war文件的形式运行Jenkins。我可以在哪里实施此解决方案?这对我不起作用:(Windows Server 2019和Jenkins 2.277.1