메뉴 건너뛰기

Gerrit Plugin Build


 2016년 7월을 기준으로 Gerrit 플러그인은 100여개에 달합니다. Gerrit 공식 페이지에서는 실행 가능한 플러그인을 제공하지 않기 때문에 운영중인 Gerrit version에 맞게 스스로 빌드 해야 하겠습니다. 본 문서는 Gerrit 플러그인을 소스로부터 빌드하고 설치하는 방법을 소개합니다. 그리고 빌드 환경은 Linux Ubuntu 또는 CentOS 입니다.

Gerrit plugin 목록 = https://gerrit.googlesource.com

이 문서에서는 delete-project 플러그인을 빌드하고 설치하겠습니다.


*몇 개의 사이트에서 Gerrit CI 빌드 결과를 제공하고 있습니다만 설치되 버전과 호환되는 binary를 찾지 못할 수도 있습니다*


사전 환경

  • JDK 설치
  • ant 설치
  • maven 설치 (일부 stable-v2.12  플러그인 빌드)
  • Gerrit 설치 (Gerrit stable-2.12가 설치되었다고 가정하겠습니다)

BUCK 설치

Gerrit 2.0부터는 빌드 도구로 maven 대신 buck을 이용합니다. Buck은 maven에 비해 엄청 빠른 속도를 제공하기 때문이랍니다.

소스코드 가져오기

$ git clone https://github.com/facebook/buck

Gerrit 버전에 맞는 buck 버전 설정하기

Gerrit의 version 알아내기:
아래 절차의 Gerrit 소스 가져오기 절차 수행 후 Gerrit version을 알아냅니다.
stable-2.12 빌드에 사용되는 buck version은 1b03b4313b91b634bd604fc3487a05f877e59dee 임을 알 수 있습니다.

$ cd gerrit
$ git checkout origin/stable-2.12
$ cat .buckversion
1b03b4313b91b634bd604fc3487a05f877e59dee


buck version 맞추기:

$ cd buck
$ git checkout 1b03b4313b91b634bd604fc3487a05f877e59dee

buck 빌드하기:

ant로 buck을 빌드합니다.

$ ant


결과물 확인과 설치:

bin 폴더 하위에 실행파일 buck이 생성됩니다.

$ ls bin/buck
buck


조금의 편리함을 위해 buck을 /usr/bin/에 복사합니다. 뭐 좋은 방법은 아니지만.

$ sudo cp buck/bin/buck /usr/bin/


플러그인 빌드하기

소스코드 가져오기

Plugin 소스코드와 Grrit 소스코드를 가져오는 것을 권장 합니다. 내키면 Gerrit 도 update 하면 좋자나요!

$ git clone --recursive https://gerrit.googlesource.com/gerrit
$ cd gerrit/plugins
$ git clone --recursive https://gerrit.googlesource.com/plugins/delete-project

소스코드 버전 맞추기

가져온 소스코드 버전을 설치된 Gerrit 의 버전과 일치시킵니다. 본 문서에서는 Gerrit stable-2.12가 설치된 것으로 가정합니다.

$ cd gerrit
$ git checkout origin/stable-2.12
$ cd plugins/delete-project
$ git checkout origin/stable-2.12


빌드하기

BUCK 이용한 빌드

$ cd gerrit
$ buck build plugins/delete-project:delete-project

delete-project 플러그인 stable-2.12는 buck으로 빌드하면 오류가 발생하는군요. Maven으로 빌드 해야겠습니다.

결과물 확인:

빌드에 오류가 없다면 결과물 buck-out 폴더 하위에 생성됩니다.
$ ls buck-out/gen/plugins/delete-project/


Maven 이용한 빌드

$ cd gerrit/plugins/delete-project
$ mvn install

결과물 확인:

$ ls target
delete-project-2.12.jar


플러그인 설치

delete-project.jar 파일을 설치된 gerrit/plugins 폴더로 복사합니다. 수 분 후 Gerrit의 plugin 페이지에 설치한 플러그인이 표시됩니다. 마음이 급하신 분들은 복사 후 gerrit restart 하시면 플러그인이 곧바로 로드됩니다.

delete-project.png



프로젝트 삭제하기

delete-project-1.png



Who's PSEG

profile

PSEG는 Practical Software Engineering Group의 약자입니다. 

이론을 넘어 실용적으로 활용할 수 있는 소프트웨어 공학을 공유하는게 그룹의 목적입니다.

?
  • ?
    초보자 2016.10.27 23:56
    안녕하세요.
    포스팅하신 문서를 기준으로 gerrit을 빌드하고있습니다.
    게릿 버전과 buck빌드 버전을 맞추고
    buck build gerrit을 하면
    buck does not appear 하며 오류가 나타납니다.
    다른 설정이 더 필요한가요?
  • ?
    Terry 2016.10.28 14:29
    별다른 설정은 필요치 않은 듯 합니다.
    build 을 실행하는 folder에 (current folder) BUCK 파일이 있는지 여쭙니다.

    그리고 소스를 고쳐서 빌드하지 않아도 된다면 gerrit 전체를 daily build 하는 site에서 굵직한 version의 binary를 다운로드 할 수 있습니다.
    https://gerrit-ci.gerritforge.com/

 


  1. No Image

    도커 내에서 도메인 접근이 안될 때 해결 방법

    도커 내에서 도메인 접근이 안될 때 해결 방법도커를 구성했는데, 도커 내에서 도메인 이름을 가진 주소에 접근이 안되어 당황스러울 때가 있습니다. 도인 이름 (예: www.example.com)을 IP 주소로 변경하지 못하는 것이 원인입니다. 해결 방법은 의외로 간...
    Date2019.01.30 ByTerry Reply0 Views191
    Read More
  2. No Image

    Git 원격 저장소에서 삭제된 branch를 로컬 저장소에서 자동으로 지우기

    Git 원격 저장소에서 삭제된 branch를 로컬 저장소에서 자동으로 지우기Git의 특성으로 로컬과 원격 저장소에 많은 브랜치들이 생성된다. 원격 저장소의 경우 팀원들이 공유해서 사용하므로 원격 저장소에서 삭제된 브랜치를 로컬 저장소에서 매번 삭제하는게 ...
    Date2018.12.22 ByTerry Reply0 Views260
    Read More
  3. CollabNet Subversion Edge 관리자 암호 초기화 방법

    CollabNet Subversion Edge의 관리자 암호 초기화 방법Edge의 관리자 암호 기준이 까다롭기 때문에 복잡한 암호를 설정해야 하기 때문에 자칫 설정했던 암호가 생각나지 않는 경우가 있다. 간단하게 암호를 초기화 할 수 있으니 다행 :) Step 1) ...
    Date2018.03.24 ByTerry Reply2 Views979
    Read More
  4. No Image

    인터넷 연결 안되는 서버에 MySQL 설치하기 (Off-line 설치)

    인터넷 연결이 허락되지 않는 환경에 MySQL을 설치해야 하는 경우가 있습니다. 훌륭한 개발자들이 방법을 만들어 놓았으니 당황하지 않습니다. 이 방법은 MySQL 뿐 아니라 다른 패키지 설치에 적용 가능합니다. 인터넷 연결 안되는 서버에 MySQL 설치하...
    Date2018.02.26 ByTerry Reply0 Views5217
    Read More
  5. No Image

    SVN 저장소를 Git으로 옮기는 방법

    SVN 저장소를 Git으로 옮기는 방법기존 Subversion으로 관리하던 소스코드를 Git으로 관리하는 것이 대세이다. 이 게시물은 svn으로 관리하던 소스코드를 Git으로 옮기는 방법을 정리 한다. 02-2.svg 사전 준비: - Subversion client 설치 - Git 설...
    Date2017.02.03 ByTerry Reply0 Views3078
    Read More
  6. Gerrit Slave/Mirror 구성하기

    Gerrit Slave/Mirror 구성하기Gerrit은 소스코드 변경 권한 관리 목적으로 미러링 구성 그리고 부하 분산을 위해 여러개의 Gerrit slave 서버 구성이 가능하다. 동기화 이후 원본 서버서 merge가 발생하면 설정된 mirror/slave 서버에 변경 내용이 자동으로 갱...
    Date2016.11.24 ByTerry Reply0 Views2851
    Read More
  7. H2 embedded database 접속 방법

    H2 embedded database 접속 방법 샘플로 제공되는 도구들은 배포의 편리함을 고려해서 embedded DB를 주로 사용합니다. DB 테이블의 내용을 참조하거나 일부 값을 수정하기 위해 H2 database 파일에 접속하는 방법을 정리합니다. Command line ...
    Date2016.11.05 ByTerry Reply0 Views6179
    Read More
  8. 여러개의 Git 저장소 (repository)로 이루어진 프로젝트 관리하기

    여러개의 Git 저장소 (repository)로 이루어진 프로젝트 관리하기프로젝트를 진행하다보면 여러 프로젝트에서 사용하는 공통 모듈이 존재하곤 합니다. Git은 이를 대비해 submodule 기능을 제공합니다. Submodule은 subversion의 external link 와 유사한 개...
    Date2016.11.01 ByTerry Reply0 Views6088
    Read More
  9. Gerrit 플러그인 빌드 방법

    Gerrit Plugin Build 2016년 7월을 기준으로 Gerrit 플러그인은 100여개에 달합니다. Gerrit 공식 페이지에서는 실행 가능한 플러그인을 제공하지 않기 때문에 운영중인 Gerrit version에 맞게 스스로 빌드 해야 하겠습니다. 본 문서는 Gerrit 플러그인을...
    Date2016.08.12 ByPSEG Reply2 Views3299
    Read More
  10. IBM Rational DOORS 프로젝트(DPA) 내보내기

    이 게시물은 IBM Rational DOORS에서 확장가 dpa(DOORS Project Archive) 파일을 Import/Export하는 방법에 대한 간단한 가이드를 제공한다. DOORS Project Archive Export 먼저 DOORS의 프로젝트를 내보내기 위해 DOORS 데이터베이스에서 해당 프로젝트...
    Date2016.06.24 ByTom Reply0 Views2114
    Read More
Board Pagination Prev 1 2 3 4 5 Next
/ 5