Maven 기준
Environment
- SonarQube 9.8
- Java 11
- Maven 3.8.6, 3.9.1
- Windows 10&11
1. Java 11 & Maven 설치
Java 11 (JDK 11) 설치
Java Archive Downloads - Java SE 11 | Oracle 대한민국
Maven 설치
Maven – Download Apache Maven
⚠️주의사항⚠️
- 📢 SonarQube 9.9버전 부터는 JDK 17이상의 버전을 필요로 한다!
자신의 환경에 맞게 사용하도록 한다.
- 💡 JDK 11의 경우 26년 9월까지만 지원한다고 한다. 스프링부트 3.0버전부터도 그렇고 다양한 소프트웨어들이 JDK 17로 넘어가고 있는 추세인 것 같다.
2. 환경 변수 설정
- 시스템 변수에 JAVA_HOME, MAVEN_HOME 경로 지정
- JDK의 경우 jdk폴더 경로 입력
- Maven의 경우 Maven\bin 폴더 경로 입력
- Path에 %JAVA_HOME% %MAVEN_HOME% 각각 추가
- 시스템 재부팅
- cmd창에서 java -version, mvn -version 을 입력했을 때 버전 정보가 출력되면 완료.
3. SonarQube 다운로드 및 실행
SonarQube 다운로드
Download | SonarQube
SonarQube 실행
-
다운받은 SonarQube파일의 압축을 관리하기 편한 위치에 푼다.
-
SonarQube 폴더를 열고 .\bin\windows-x86-64 으로 이동한다.
-
StartSonar.bat을 실행한다.
- “SonarQube is operational”이 출력되면 정상적으로 실행된것이다.
-
브라우저 실행 후 http://localhost:9000/ 또는 http://127.0.0.1:9000/ 을 입력하여 소나큐브에 접속한다.
- 로그인 창이 뜨면 확실하게 구동이 된 것을 확인할 수 있다.
- 로그인 초기 ID/PW는 admin
🔧 제가 겪은 오류
- StartSonar.bat을 실행 시키자 마자 종료됨
- 처음엔 SonarQube 9.9버전을 설치하여 JDK 버전이 맞지않아 발생한 오류
- SonarQube 9.8버전으로 변경 후 해결!
- StartSonar.bat을 실행시킨 후 중간지점에서 Exception 발생
- SonarQube를 재실행하는 과정에서 발생
- 컴퓨터 재부팅 후 문제 해결!
- 아마 이전에 실행한 SonarQube가 정상적으로 종료되지 않은 것으로 보인다.
- (추가) 예상대로 SonarQube가 정상적으로 종료되지 않아서 나타나는 현상이었다.
- 작업관리자에서 JDK 관련 프로세스만 종료해도 해결된다.
4. 프로젝트 연결
-
로그인을 하게되면 첫 화면으로 프로젝트 대시보드가 나오며 첫 실행 시라면 빈 화면일 것이다.
- 사진은 수행한 프로젝트를 테스트용으로 올려놓아 프로젝트의 상태를 확인할 수 있다.
-
빈 화면이면 화면 중앙의 Create Project를 누르면 다음과 같은 화면이 나온다.
- 로컬에 있는 프로젝트를 등록할 것이나 Manually로 선택한다.
-
마찬가지로 프로젝트가 로컬에 있으므로 Locally를 선택한다.
- 프로젝트 환경에 따라서 Jenkins, GitHub Action, GitLab CI와 같은 CI도구와 파이프라인을 구축해서 사용할 수 있다.
-
다음으론 프로젝트 토큰을 생성한다. 토큰 이름과 만료일을 설정해준 뒤 Generate를 눌러 토큰을 생성한다.
- ⚠️생성된 토큰은 꼭 어딘가에 적어놓도록 한다
-
토큰을 확인하고 넘어가면 빌드 환경을 선택하면 프로젝트 연결을 위해 입력해야할 명령어를 보여준다.
-
프로젝트의 POM.xml 파일이 있는 위치에서 Shift+우클릭으로 PowerShell 창을 열고 다음 명령어를 입력한다.
mvn clean verify sonar:sonar "-Dsonar.projectKey=프로젝트명" "-Dsonar.host.url=http://localhost:9000" "-Dsonar.login=토큰"
- 실행 전 프로젝트 빌드를 꼭 실행하자!
- SonarQube에서 준 코드를 그대로 사용하지 말고 코드를 한 줄로 만들고 각 속성을 “”로 묶어주자!
-
다음과 같이 BUILD SUCCESS가 나오면 드디어 끝이다!
- SonarQube에서 Projects탭을 눌러 대시보드에 프로젝트가 뜨는지 확인해보자!
(추가) Code Coverage 표시 (JaCoCo 의존성 추가)
Notion
https://ttanggin.notion.site/SonarQube-097533487dc646c4b3ac53c5eb0397c9