개발

맥에 OpenGrok 설치 하기

뽕다르 2015. 9. 13. 17:34

OpenGrok이란 소스코드를 인덱싱해서 웹 페이지에서 쉽게 검색, 분석 할 수있도록 해주는 툴입니다. 거의 모든 언어를 지원하고, 소스코드를 미리 인덱싱 해놓기 때문에 전체 코드에서 원하는 키워드를 빠르게 검색하는데 정말 유용할 툴입니다.


소스코드의 양이 작다면 간단하게 코드 에디터로 검색이 가능하지만 안드로이드 소스코드 처럼 전체 소스코드의 양이 많은 큰 프로젝트에서 코드를 분석하고 원하는 부분을 찾기 위해서는 이런 분석 툴이 정말 유용하죠.


보통 개인적으로 이런 툴을 사용할 일이 많지는 않지만, 안드로이드 앱 예제 소스 같은거를 여러개 다운로드 받아 분석할때에도 꽤나 유용하게 활용할 수 있습니다.





OpenGrok를 설치 하기 위해서는 리눅스나 맥OS가 필요한데, 저는 맥북을 사용하고 있어서 맥OS에서 간단하게 설치 해서 사용하는 방법을 찾아서 정리해 봤습니다.


1. Homebrew 설치

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Homebrew는 맥OS에 설치 되어 있지 않은 패키지들을 간단하게 다운로드/설치 해주는 유틸리티 입니다. 리눅스 환경에 익숙하지 않다면 쉘을 통해 유틸리티를 다운로드 받고 설치 하는과정이 쉽지 않은데 Homebrew는 이런 과정을 한번에 해결해 줍니다.



2. Tomcat, Ctags, wget 설치

$ brew install tomcat
$ brew install ctags
$ brew install wget

Homebrew를 설치 했다면 이제 brew 명령어를 통해 OpenGrok를 설치 하기 위해 몇가지 유틸리티를 다운로드 받습니다.



3. OpenGrok 다운로드

$ cd /usr/local/Cellar $ wget http://java.net/projects/opengrok/downloads/download/opengrok-0.12.1.tar.gz | tar xvz

이제 wget 명령어를 통해 OpenGrok을 다운로드 합니다. 압축 파일을 직접 다운로드 받고 싶다면 OpenGrok Release 웹페이지에서 직접 다운로드 할 수 있습니다. 직접 다운로드 했다면 /usr/local/Cellar 폴더에 압축을 풀어주세요.



4. OpenGrok Deploy 하기

$ cd /usr/local/Cellar
$ OPENGROK_TOMCAT_BASE=/usr/local/Cellar/tomcat/8.0.26/libexec opengrok-0.12.1/bin/OpenGrok deploy

Deploy라는 용어가 좀 생소할수 있는데, 간단히 OpenGrok을 웹페이지 상에서 볼 수있도록 설치 하는 과정이라고 생각하면 될것 같네요.  빨간색 부분은 다운로드 받은 버전에 맞게 수정해주면 됩니다.



5. Tomcat 시작 하기

$ catalina start

웹페이지상으로 OpenGrok을 열어보기 위해서는 Tomcat 서버를 실행해야 합니다.



6. 소스 인덱싱 하기

$ OPENGROK_INSTANCE_BASE=opengrok-0.12.1 /usr/local/Cellar/opengrok-0.12.1/bin/OpenGrok index /Users/AndroidStudioProjects

실제 코드를 인덱싱를 실행하는 부분입니다. 맨뒤에 빨간색으로 되어 있는 부분을 원하는 경로로 입력하면 해당 디렉토리에 있는 모든 하위 폴더의 소스 코드를 인덱싱하기 시작합니다. 소스코드의 양에 따라 인덱싱하는 시간이 좀 걸릴수도 있으니 끝날때까지 잠시 기다려 줍니다.



7. 웹페이지 열기

웹브라우저에서 링크 열기 : http://localhost:8080/source

이제 OpenGrok을 통해 소스코드를 구경할 모든 준비가 끝이 났습니다. 사파리나 크롬을 열고 위 링크를 열면 인덱싱된 소스코드를 확인해 볼 수 있습니다.



8. Tomcat 멈추기

$ catalina stop

컴퓨터를 재부팅하면 다시 시작하지 않기 때문에 따로 종료할 필요는 없지만 종료하기 원한다면 위 명령어로 Tomcat 서버를 멈출 수 있습니다.



※ OpenGrok에서 프로젝트 리스트 창 크기 조절하기

OpenGrok을 인덱싱 할때 주어진 소스코드 폴더에 있는 첫번째 하위 폴더들이 프로젝트 리스트가 되어 In Project(s) 리스트로 보이게 되는데, 이 박스 높이가 고정되어 있어 폴더가 많으면 스크롤이 생기게 되어 불편합니다. 이때 아래와 같은 방법으로 박스의 높이를 조절 할 수 있습니다.


/usr/local/Cellar/tomcat/8.0.26/libexec/webapps/source/menu.jspf 경로로 이동
170 Line : Math.min(20, projects.size() <-- 수정

OpenGrok이 Tomcat을 이용해 자신의 PC를 서버로 돌려 실행하기 때문에 조금만 더 설정을 해주면 어디서나 내 PC에 접속해 소스코드를 확인해 볼 수 있지만, 또 다른 한편으로는 보안관련해서도 신경을 써야 하기 때문에 쉽지 않은것도 사실입니다. 좀 더 유용하게 활용하고 싶다면 인터넷으로 관련 정보를 좀 더 찾아 보는것을 추천 드립니다. ^^