티스토리 뷰

공부

SonarQube 삽질기

Zedd0202 2019. 12. 4. 14:18
반응형

 


⚠️중요⚠️

이글은 삽질기..이고

https://zeddios.tistory.com/976

 

SonarQube integration with Xcode (feat. Docker)

안녕하세요 :) Zedd입니다. https://zeddios.tistory.com/868 SonarQube 삽질기 안녕하세요 :) Zedd입니다. NHN Forward에 가서..소나큐브에 대한 이야기를 듣고..한번 써보고 싶었는데요!! 일단 제 궁극적인 목표..

zeddios.tistory.com

여기에 새로 썼습니다. 참고 부탁드려요. 

 


 

 

안녕하세요 :) Zedd입니다.

NHN Forward에 가서..소나큐브에 대한 이야기를 듣고..한번 써보고 싶었는데요!!

일단 제 궁극적인 목표는..NHN Forward에서 봤듯이 Pull Request에 소나큐브 봇...?? 암튼 소나큐브가 정적분석을 진행하여 생긴 warning?...을 comment로 적어주게 만드는게 목표긴 한데

 

아니 보니까 이게 뭐 그냥 슉슉해서 안되네요?

일단...그냥 써보겠습니다.

아주 험난한 삽질이 예상되는 가운데..잘 할 수 있을것인지..!!!!!!!!

 

 

SonarQube 사용해보기


일단 SonarQube..이하 소나큐브라고 하겠습니다.

SonarQube가 뭔지부터 알아야겠죠!!!


SonarQube : 20 개 이상의 프로그래밍 언어에서

버그, 코드 냄새 및 보안 취약점을 탐지하는 정적 코드 분석..을 해주는 툴

이라고 생각하시면 됩니다. 

 

그럼 정적 코드 분석이 뭔지!! 알아야겠군요. 

 

정적 프로그램/코드 분석 (Static program analysis) :  

실제 실행 없이 컴퓨터 소프트웨어를 분석하는 것을 말한다. 

 

뭐 그렇습니다.

여러 정적 분석 툴이 있는데 그 중 하나가 소나큐브입니다.

그걸 오늘 써볼거구요!

 

 

https://www.sonarqube.org

 

Code Quality and Security | SonarQube

Continuous Code Inspection Thousands of automated Static Code Analysis rules, protecting your app on multiple fronts, and guiding your team. Code Reliability Catch tricky bugs to prevent undefined behaviour from impacting end-users. Read more Application S

www.sonarqube.org

홈페이지에 가봅시다. 

소나큐브 feature설명. 

뭐 이런것들을 할 수 있다고 합니다.

Language에 가봅시다!

으음 합격

 

아니 옵씨 저밑에 있는거 개웃겨

암튼 소나큐브 쓸라면 설치를 해야함; 

 

https://www.sonarqube.org/downloads/

 

Download | SonarQube

Download SonarQube 7.9.x LTS

www.sonarqube.org

난 free버전 설치해야징!!~~~

ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ

 

 

ㅋㅋㅋ..

 

아니

 

아;; 머얀

딱봐도 유료.

free trial...근데 저 

https://medium.com/@pranay.urkude/sonarqube-integration-with-ios-b76df8405014

 

SonarQube Integration with iOS

What is SonarQube?

medium.com

이분 꺼 그대로 보면서 할거라서..일단 커뮤니티 에디션을 받도록 하겠습니다.

위 포스팅이 너무너무너문머누너무 설명이 잘 되어 있기 때문에...제가 굳이 다시 하나하나 안볼거구요. 하면서 같이 보면 좋을 것들? 주의하면 좋을 것들만 같이 보도록 할게요. 그리고 저분이 동영상으로도..!! 하는 방법을 설명해주시니까 보면서 따라하시는게 더 건강에 이로울듯한 ㅎ;

 

먼저, SonarQube / SonarScanner를 다운받아줍니다. 

그리고 .bash_profile을 업데이트 해준 뒤,

https://github.com/Backelite/sonar-swift/releases

 

Backelite/sonar-swift

Open source Swift plugin for SonarQube (also supports Objective-C) - Backelite/sonar-swift

github.com

에서 swift-plugin을 다운받아줍니다.

저는 0.4.5버전이네요. jar파일을 언급된 디렉토리로 옮겨줍니다. 

ㅇ ㅏ~~이래서....커뮤니티 에디션을 다운받아도 됐었군 ㅎ

 

그리고 터미널 루트로 가서,

sh /Applications/SonarQube/bin/macosx-universal-64/sonar.sh console

를 실행 ㄱㄱ

머 이런식으로 나옴

아 테마를 좀 바꿔야겠네;; 눈아파

그리고 위 로그 보면 에러났음 ㅋ...

 

SonarQube requires Java 11+ to run......

 

라고 되어있는데..제가 Java 11이 없나봅니다...

 

아 삽질하나 공유하겠음 ㅎ

JAVA 11없어 -> 오라클 다운로드 페이지

https://www.oracle.com/technetwork/java/javase/downloads/index.html?ssSourceSiteId=otnjp

 

Java SE - Downloads | Oracle Technology Network | Oracle

Which Java package do I need? Software Developers: JDK (Java SE Development Kit). For Java Developers. Includes a complete JRE plus tools for developing, debugging, and monitoring Java applications. Administrators running applications on a server:  Server

www.oracle.com

가장 최신이 13.0.1인거에요!?

뭐 제일 최신 받으면 되겠지; 하고 받아버림

 

아 근데 터미널에서

 

o.s.a.SchedulerImpl] Process [es] is stopped

[o.s.a.SchedulerImpl] SonarQube is stopped

 

아 계속!!! 이게 나는거임?

그래서 찾아봤더니

https://community.sonarsource.com/t/sonarqube-is-stopped-o-s-a-p-abstractmanagedprocess-process-exited-with-exit-value-es-1/14786/3

 

SonarQube is stopped: [o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 1

Hi, I have the same issue using the latest version of SonarQube 8.0 with java 13.0.1 on MacOS Mojave version 10.14.6. MacBook-Pro-2:macosx-universal-64 buildserver$ /Users/buildserver/Downloads/sonarqube-8-2.0/bin/macosx-universal-64/sonar.sh console Runni

community.sonarsource.com

 

글쿠만..

그래서 또 오라클 갔지

이번엔 11.0.5받으려고 했는데 이번엔 로그인을 하라는거에요!?!?!?

로그인 하기 싫은데..

그래서 칭구한테 물어봤는데, 걍 brew로 openJDK를 깔라는거에요!? < 구글에 치면 나옴

 

그래서 

^^ 11을 얻게 되었읍니다..

그리고 가벼운 마음으로 

sh /Applications/SonarQube/bin/macosx-universal-64/sonar.sh console

를 치면

서버가 올라간 것!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ㅎㅎ

ㅎㅎ

ㅎㅎ

ㅎㅎ

 

 

아ㅓㅁ튼 다음 과정 ㄱ

http://localhost:9000/about

에 접속 ㄱㄱ

 

오...

 

로그인 ㄱ 

ID : admin / PW: admin 

 

ㅇㅇ개쉬움

 

이제 얘는 두고 Xcode가보겠삼

 

프로젝트를 만들라고 하는데, 

반드시

1. UnitTest, UI Test를 체크할 것.

2. Team을 none으로 유지할 것.

 

이라고 하네요..1은 이해가는데 2는 왜지..

암튼 만들어줌

 

edit scheme가서

 

Gather coverage for all targets 체크!

그담에 

Empty로 파일 하나 만들어줌 이름은

sonar-project.properties

 

 

 

Pmobiledev/SonarDemo

This project will help to integrate the SonarQube with the iOS project - Pmobiledev/SonarDemo

github.com

여기 가서 복붙 ㄱㄱ

그담에 블로그 글 보면서 하나하나 업데이트 해주면댐

 

그리고 업뎃하면 파일 하나 더 만들어주는데 이름은 run-sonar-swift.sh

https://github.com/Pmobiledev/SonarDemo/blob/master/SonarDemo/run-sonar-swift.sh

 

Pmobiledev/SonarDemo

This project will help to integrate the SonarQube with the iOS project - Pmobiledev/SonarDemo

github.com

거따가 이거 복붙.

 

그리고 터미널로 내 프로젝트 디렉토리로 가준다음에

./run-sonar-swift.sh -v

 

하면..

 

그놈의 퍼미션///

chmod u+x run-sonar-swift.sh

하고 나서 다시 

./run-sonar-swift.sh -v   

 

ㄱㄱ 하면

당연히 또 에러남 후..

 

ERROR - Command 'xcodebuild clean build -workspace SonarQube.xcworkspace -scheme SonarQube -destination platform=iOS Simulator,name=iPhone 7,OS=12.1 -destination-timeout 360 COMPILER_INDEX_STORE_ENABLE=NO' failed with error code: 66

 

workspace..? 

pod init > pod install 해줌

 

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

여러분...

저좀 살려주세요 ㅍㅍㅍㅍㅍ

지금 며칠째.....에러만 잡고있음

 

이거 하나 하면 에러나고

또 고치면 다른 에러나고

진짜 미쳐버리는게 이느낌이군

 

ㅋㅋㅋㅋㅋㅋㅋㅋㅋ진짜 개같다

 

1. 어 되나..?

싶으면

 

ERROR - Command 'slather coverage --binary-basename SonarQube --input-format profdata --cobertura-xml --output-directory sonar-reports --workspace SonarQube.xcworkspace --scheme SonarQube SonarQube.xcodeproj' failed with error code: 127

 

이거 진짜.....계속찾다가 무슨

알고보니

 

gem install slather

 

slather라는걸 깔아야 하는거에요??

아니 이걸 아까 알아가지고 또 했는데

 

 

2. 또

ERROR - Command 'sonar-scanner --define sonar.projectVersion=1.0' failed with error code: 127

 

projectVersion 1.0으로 해주라 그래서 sonar-project.properties에 가서

 

 

추가 해주고

 

또 했는데

 

3. 근데 또!!!!!!!!

ERROR - Command 'sonar-scanner ' failed with error code: 127

 

ㅋㅋㅋㅋㅋ아

ㅠㅠㅠㅠ리얼 포기하고싶다,,,,

 

아니 나 소나스캐너 깐거 아냐..? 소나 스캐너 커맨드도 뭐 있어야해?

아니 bash_Profile에 path적어줬는데...왜 난리야 이 미친넘아

아...ㅠㅠㅠㅠㅠㅠㅠ

 

모르겠다

반응형

'공부' 카테고리의 다른 글

Mach-O  (4) 2019.12.06
Xcode canvas 살펴보기  (1) 2019.12.05
Fastlane (4) - Upload Screenshots to the App Store  (0) 2019.11.08
Fastlane (3) - Screenshots  (0) 2019.11.07
Fastlane 재설치  (2) 2019.11.06