我正在尝试为 SonarQube checkstyle 插件编写扩展。我想使用依赖注入来连接所需的依赖项。据我所知(似乎缺少文档)SonarQube 使用 plexus 作为其 IoC 容器。在我的自定义插件中,我添加了必要的依赖项来生成一个 plexus 组件文件(确认打包在“/META-INF/plexus/components.xml”的插件 jar 中)。但是,当我启动服务器时,它会发出一个错误,指出找不到依赖项:
org.picocontainer.injectors.AbstractInjector$UnsatisfiableDependenciesException:
foo.SonarCheckstyleRuleRepository has unsatisfied dependency 'interface foo.MyInterface'
for constructor 'public foo.SonarCheckstyleRuleRepository(
foo.MyInterface,foo.DifferentInterface)'...
插件中是否需要额外的配置(在 components.xml 之外)才能在 SonarQube 服务器中注册组件?我需要用插件打包 plexus classworlds 库吗?与“微微容器”集成是否需要额外的东西?