2017-12-13 10 views
0

Eclipse에서 내 dev 시스템에서도 잘 작동하는 사용자 정의 SonarQube 플러그인을 구현하려고하는데, 우리의 SonarQube 인스턴스에 배치하자마자 런타임 중에 ClassNotFoundException . 런타임 중에 찾을 수없는 클래스는 ExpressionsHelper입니다. (이해하는 한) sonar-java-plugin-***.jar에 있어야합니다.SonarQube 버전 <-> SonarJava 버전 사용자 정의 플러그인

우리 SonarQube 인스턴스는 버전 6.1을 실행 중이며, SonarJava 플러그인은 버전 4.15.0.12310에 설치됩니다.

내 dev 컴퓨터의 구성이 SonarQube 인스턴스의 사용 가능한 라이브러리와 일치하도록 어떤 버전으로 내 pom.xml에 설정해야합니까? 나는 그들을 sonar.version = 6.1, java.plugin.version = 4.15.0.12310으로 설정하려고 시도했다. 그러나 스캔하는 동안 여전히 ClassNotFoundException이 발생한다.

미리 도움을 주셔서 감사합니다.

+0

SonarJava에서 사용중인 API가 공개되어 있습니까? –

+0

네, 그렇게 생각합니다.하지만 ImportTree.qualifiedIdentifier()에서'Tree'의'String' 콘텐츠를 가져 오는 다른 방법을 알고 있다면 기꺼이 받아 들일 수 있습니다 :-) – user3032769

답변

0

클래스가 org.sonar.plugins.java.api으로 시작하는 패키지의 일부가 아닌 경우 런타임에 찾을 수 없습니다.

org.sonar.java.checks.helpers.ExpressionHelper은이 패키지의 일부가 아니므로 런타임에 찾을 수 없으므로 예외가 발생합니다.

+0

알았어요 - 어떻게 콘텐츠를 추출할까요? ImportTree.qualifiedIdentifier()를 사용하는 것이 이상적입니까? 트리 탐색을 다시 구현해야합니까? 거기에 API에 아무것도 없습니까? – user3032769

+0

현재로서는 ExpressionHelper가 무엇인지 붙여 넣기해야합니다. 실제로 API와 같은 유틸리티는 제공하지 않습니다. – benzonico