무료버전이지만 PR Decoration 기능을 쓰고 싶다! 싶을 때 필요한 과정

Jinwon Han
tving.team
7 min readNov 7, 2023

--

본 문서는 Sonarqube Community Edition (10.0.0) 버전을 바탕으로 작성하였으며, 버전별 호환 정보는 https://github.com/mc1arke/sonarqube-community-branch-plugin 를 참조바랍니다.

— —

기본적으로 Sonarqube의 Plugin 설치 방법은 다음 2가지가 있다.

  1. Sonarqube 앱 내 Marketplace 내 다운로드
  2. Sonarqube 인스톨 경로 내부에 직접 jar 파일 배치

Marketplace의 경우 Administration 탭에서 확인 가능하다.

Sonarqube Marketplace

하지만 제공하는 플러그인이 한정적이고, 정작 우리가 원하는 기능의 플러그인이 없을 확률이 높다.

그래서 오픈소스 또는 별도로 공급된 jar 형태의 플러그인을 직접 설치하는 경우가 많다.

sonarqube-community-branch-plugin의 경우 설치 방법은 다음과 같다.

###
# sonarqube 설치 경로 내 extensions/plugins 로 jar 파일을 이동
# -> docker(또는 docker-compose)로 설치했을 경우 미리 volume mount를 활성화시켜 놓으면 편하다.
# config/sonar.properties 파일 내에 다음 설정값을 추가해준다.
sonar.web.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin-1.15.0-SNAPSHOT.jar=web
sonar.ce.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin-1.15.0-SNAPSHOT.jar=ce

sonarqube-community-branch-plugin 호환 버전 명시에 따라

가장 최신인 1.14.0 릴리즈 버전을 사용해보기로 한다.

버전별 호환정보

하지만 그 결과..

일반 릴리즈 버전 (1.14.0) 적용 시

ERROR com.github.mc1arke.sonarqube.plugin.CommunityBranchAgent - Could not transform class org.sonar.server.almsettings.MultipleAlmFeature, will use default class definition

javassist.NotFoundException: isEnabled(..) is not found in org.sonar.server.almsettings.MultipleAlmFeature

에러가 출력되며 소나큐브 컨테이너가 부팅되지 않는다 (…)

플러그인 소스 내부에서 사용되는 ‘MultipleAlmFeature’ 와 관련된 class 혹은 메소드 에러로 보인다.

분명 같은 증상을 겪는 사람들이 있을꺼라 생각하여 깃헙 내 이슈들을 찾아봤다.

— —

현재 Sonarqube CE 버전 (10.0.0) 에 관한 이슈

‘MultipleAlmFeature’ class를 이용해 작업한 것을 인지하고 있는듯한 Owner의 코멘트

마지막 릴리즈 된 버전에는 문제를 분석 + 해결책을 반영을 하지 않은 것으로 보인다.

버전 호환이 되지 않는다는 이슈와 함께 아티팩트 URL들이 있었지만

만료된 URL
만료된 아티팩트

만료된 URL과 아티팩트들뿐이었다.

그래서 직접 해당 레포지토리 내의 액션 커밋들을 전부 조사해봤다.

오픈소스 Github Action 중 일부

→ 중간중간에 소나큐브 10.0 버전에 대한 업데이트 커밋들이 있는 것을 발견

그 중 문제의 해결책이 될 수 있는 스냅샷 버전의 액션+아티팩트를 찾아냈다.

흰색의 snapshot 글자가 너무나도 반갑다

그렇게 적용된 1.15.0-SNAPSHOT 버전!

Installed 된 Community Branch Plugin

PR Decoration 기능이 성공적으로 지원된다.

이제는 릴리즈 된 1.15.0 버전

(2023년 10월 기준 아직까지는 꾸준히 develop 되는 것으로 보인다.)

https://github.com/mc1arke/sonarqube-community-branch-plugin/releases/tag/1.15.0

--

--