Я разрабатываю плагин для SonarQube 4.5.4/5.0.1. Я хотел бы использовать плагин sonar-dev для загрузки файла JAR и быстрого перезапуска сервера SQ. Плагин использует REST API (/api/system/restart
), который активируется установкой sonar.dev=true
.SonarQube не запускается во время разработки плагина
Вот конфиг:
<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>
Проблема заключается в том, что сервер выходит из строя после каждой перезагрузки попытки, и я должен перезапустить его вручную, что приводит к разочарованию и истощает мою производительность. Вот stacktrace, который возвращается после каждого следующего запроса после перезапуска.
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)
And here's what happens in logsначиная от линии 71.
Согласно @Simon Brandhof, это может быть связано с загрузчиком класса, который блокирует файлы. Любую подсказку или обходное решение заслуживают высокой оценки.
Кажется, что они связаны: http://stackoverflow.com/questions/11273303/java-classloader-dilemma-with-locked-jars и http://stackoverflow.com/questions/3216780/problem-reloading-a -jar-using-urlclassloader – Sergey