【问题标题】:Error Installing ruby runtime in Jenkins在 Jenkins 中安装 ruby​​ 运行时时出错
【发布时间】:2016-02-26 07:08:38
【问题描述】:

我尝试在 Jenkins 中安装 ruby​​ 运行时、rvm、黄瓜插件,

当我安装 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)
    ...

如何解决?提前致谢

【问题讨论】:

    标签: ruby jenkins cucumber


    【解决方案1】:

    这是一个已知的bug。 有一个解决方法:

    /etc/default/jenkins

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

    如您所见,目前没有明确的解决方案。

    【讨论】:

    • 非常感谢!我在 Windows 中安装了 Jenkins。我在哪里可以找到这些文件?我刚刚在上面的问题中上传了我的 Jenkins 文件夹结构的屏幕截图。
    • 我认为它是 Windows 中的 jenkins.xml 但我不确定(没有在 Windows 上尝试过)。抱歉回复晚了。
    • 我将 Jenkins 作为 Tomcat 战争文件运行。我可以在哪里实施此解决方法?
    【解决方案2】:

    在 Windows 上, 添加参数

    -Dhudson.ClassicPluginStrategy.noBytecodeTransformer=true
    

    jenkins.xml 文件中,正如@lvthillo 所说,对我有用。

    <arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -Dhudson.ClassicPluginStrategy.noBytecodeTransformer=true -jar "%BASE%\jenkins.war" --httpPort=8081 --webroot="%BASE%\war"</arguments>
    

    【讨论】:

    • 这对我不起作用 :( Windows Server 2019 和 Jenkins 2.277.1
    【解决方案3】:

    在 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-ish 的方式来做到这一点。

    重新启动 Jenkins 后,已经下载的 ruby​​ 运行时插件开始工作,同样下载的 rvm 插件也是如此,这是我所追求的。

    【讨论】:

      【解决方案4】:

      我通过将 java 版本更改为第 8 版解决了这个问题。 可能是 java 11 兼容性问题。 1-https://www.liquidweb.com/kb/install-java-8-on-centos-7/

      2- 在 Centos 上删除 /var/lib/jenkins/plugins 中的所有 ruby 插件

      3- 从https://updates.jenkins-ci.org/download/plugins/ruby-runtime/下载 ruby​​-runtime.hpi 插件

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

      【讨论】:

        【解决方案5】:

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

        所以我刚刚从Plugins 文件夹中删除了ruby-runtime 的所有文件(您需要关闭 Jenkins 服务)并重新启动 Jenkins。

        【讨论】:

          【解决方案6】:

          对我来说,安装java 8 解决了这个问题。之后我就可以安装ruby-runtime 插件了。

          环境:Debian 10

          【讨论】:

          • 不过应该​​是ruby
          猜你喜欢
          • 1970-01-01
          • 2019-12-03
          • 2022-12-30
          • 1970-01-01
          • 2023-04-04
          • 2021-10-23
          • 1970-01-01
          • 2012-03-09
          • 2020-02-19
          相关资源
          最近更新 更多