SonarQube在插件开发期间无法重启

Mic*_*udy 7 plugins sonarqube

我正在为SonarQube 4.5.4/5.0.1开发一个插件.我想使用sonar-dev插件上传一个JAR文件并快速重启SQ服务器.插件使用REST API(/api/system/restart),它通过设置sonar.dev=true属性启用.

这是配置:

<plugin>
    <groupId>org.codehaus.sonar</groupId>
    <artifactId>sonar-dev-maven-plugin</artifactId>
    <version>1.8</version>
    <configuration>
        <sonarHome>F:\sonarqube-5.1\sonarqube-5.1</sonarHome>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

问题是每次重启尝试后服务器崩溃,我必须手动重启,这令人沮丧,并降低了我的工作效率.这是"重启"后每个后续请求返回的堆栈跟踪.

org.jruby.exceptions.RaiseException: (NoMethodError) undefined method `controllers' for nil:NilClass
    at org.jruby.RubyKernel.method_missing(org/jruby/RubyKernel.java:255)
    at RUBY.method_missing(F:/sonarqube-5.1/sonarqube-5.1/web/WEB-INF/gems/gems/activesupport-2.3.15/lib/active_support/whiny_nil.rb:52)
    at RUBY.add_java_ws_routes(F:/sonarqube-5.1/sonarqube-5.1/web/WEB-INF/config/../lib/java_ws_routing.rb:34)
    at RUBY.reload(F:/sonarqube-5.1/sonarqube-5.1/web/WEB-INF/config/../lib/java_ws_routing.rb:58)
    at RUBY.reload_application(F:/sonarqube-5.1/sonarqube-5.1/web/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/dispatcher.rb:58)
    at RUBY.run(F:/sonarqube-5.1/sonarqube-5.1/web/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/reloader.rb:42)
    at RUBY.call(F:/sonarqube-5.1/sonarqube-5.1/web/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/dispatcher.rb:108)
    at RUBY.serve_rails(file:/F:/sonarqube-5.1/sonarqube-5.1/lib/server/jruby-rack-1.1.13.2.jar!/rack/adapter/rails.rb:34)
    at RUBY.call(file:/F:/sonarqube-5.1/sonarqube-5.1/lib/server/jruby-rack-1.1.13.2.jar!/rack/adapter/rails.rb:39)
    at RUBY.call(file:/F:/sonarqube-5.1/sonarqube-5.1/lib/server/jruby-rack-1.1.13.2.jar!/rack/handler/servlet.rb:22)
Run Code Online (Sandbox Code Playgroud)

这是 从第71行开始的日志中发生的事情.

根据@Simon Brandhof,它可能与锁定文件的类加载器相关联.任何线索或变通方法都非常感激.

Sim*_*rce 6

Java插件似乎锁定了它的类加载器.通过删除卸载它extensions/plugins/sonar-java-plugin-3.0.jar应该可以解决问题.