Lifove Story

Gradle과 git 이용해서 Eclipse로 Java 프로젝트 개발 시작하기 본문

Lifove Programming

Gradle과 git 이용해서 Eclipse로 Java 프로젝트 개발 시작하기

Lifove 2016.04.24 04:10

혼자 개발 할때는 그냥 Eclipse로 Java project 추가해서 개발만 하면 그만인데, 외부 라이브러리를 사용하는 오픈 소스 프로젝트를 개발하려면, gradle 같은 build 툴이나, 버전 관리 저장소 git을 이용 해야 한다. 빨리 개발을 시작하고 싶은데, 처음 사용하거나 익숙하지 않은 툴 때문에, 삽질을 할 때가 많다. 삽질을 하면서 내 경험상으로 깔끔하게 gradle, git, Eclipse를 이용해 자바 프로젝트를 시작할 수 있는 순서를 정리해 보았다. (gradle과 git이 PC에 설치 안되어 있으면 먼저 설치 부터 하자.)


(1) Github에 저장소를 만들고 내 PC에 git clone 한다. Clone할 때, 주소 시작을 http가 https로 해야한다. http로 하면 이클립스에서 pull 할 때 오류가 발생할 수 있다. 처음 작업이라면 Clone 후 대게 LICENCE와 README.md만 있을 것이다. 보통 자신의 홈 디렉터리에 git폴더를 만들고 clone하면 된다.  Linux나 mac의 경우는 ~/git


(2) git clone한 프로젝트 디렉터리로 이동한 후 gradle로 java project 기본 build 환경을 구축한다.


$ gradle init --type java-library


그러면 다음과 같은 파일과 폴더가 자동으로 생성된다. gradle 각종 설정 파일 및 Java 소스코드 디렉터리인 src가 생긴다. (gradle init이 안먹히면, 최신 gradle을 설치해서 시도해야 한다.)

.gradle

build.gradle

gradle

gradlew

gradlew.bat

settings.gradle

src


관련 정보는 http://www.mkyong.com/gradle/gradle-create-java-project-structure-automatically/ 과 https://docs.gradle.org/current/userguide/build_init_plugin.html 을 참조. (기본 테스트 프레임워크가 jUnit인데, 다른 테스트 프레임워크를 선택할 수 있는 추가 명령어가 나와 있다.)


(3) .gitignore 파일을 추가한다.

다음의 내용을 참조해서, .gitignore 파일을 만들면 된다. https://github.com/lifove/CLAMI/blob/develop/.gitignore Gradle 이용 자바 프로젝트 개발시, git에 굳이 저장될 필요가 없는 여러가지 파일들을 걸러준다. 이런 저런 환경설정 파일들이 git에 저장이 되면, 나중에 Eclipse에 import할 때 꼬여버리는 불상사가 생길 수 있으니, 꼭 추가하도록 하자.


(4) Eclipse 실행해서,  앞 단계에서 생성한 Java 프로젝트를 import한다.

Eclipse 시작시, workspace path는 git clone한 곳과는 다른 곳에 지정한다. workspace path에 Eclipse 관련 숨은 파일들이 생기기 때문에,  git clone한 곳으로 workspace 잡아주면, git과 Eclipse workspace가 꼬여 버린다. 그래서 프로젝트 열고 import하는 작업들이 깔끔하게 안될 수 있다. Eclipse가 떴으면, File > Import > Gradle > Gradle Project 해서 git clone 한 디렉터리 경로를 설정해주고 Finish 한다. Git과도 자동으로 연결이 되고, gradle기반인 Java 프로젝트가 Eclipse에 나오는 것을 확인할 수 있다. 참고로 Eclipse gradle plugin은 Elclipse Mars부터 기존 탑재되어 있다. (이전 버전의 Eclipse에서는 gradle plugin을 수동으로 설치 해주어야 한다. 그런데, 맥에서 수동으로 설치했다가 이전 Elcipse가 실행 안되는 문제가 발생, 그냥 Eclipse Mars에서 했다.) 추가적으로, git clone한 곳과 Eclipse workspace path가 분리되어 있기 때문에, workspace 안에는 실제 코드들이 존재하지 않고, git clone 한 경로에 모든 코드들이 있다. 그러니 Eclipse종료 후 다시 시작할 때, workspace 경로는 원래 workspace 경로를 계속 이용해야 함을 잊지 말자.


(5) 혹시, 필요한 외부 라이브러리가 있으면, Eclipse에서 build.gradle 파일을 연 후 필요한 라이브러리를 추가 한다.

나의 경우는 commons-cli 1.3.1이 필요했는데, jcenter() 저장소에 있어서 (https://bintray.com/bintray/jcenter/commons-cli%3Acommons-cli/1.3.1/view), 바로 dependencies 섹션에 형식에 맞게 추가 하였다. bintray 홈페이지에 친절하게 gradle에 어떤 라인을 추가해야 하는지 나와있으니 해당 라인 copy / paste만 하면 된다. 나의 경우는 아래의 라인을 dependencies 섹션에 추가 했다. http://mvnrepository.com/ 이 곳에서 필요한 라이브러리들을 검색해서 gradle 라이브러리 스트링을 copy / paste 해도 된다.


compile 'commons-cli:commons-cli:1.3.1'


(6) build.gradle 파일이 수정 됐으므로, Refresh Gradle Project를 해준다.

Eclipse 프로젝트 이름 위에서 마우스 오른쪽 버튼을 누른 후, Gradle >> Refresh Gradle Project하거나 그냥 프로젝트 Refresh만 해도, `Project and External Dependencies' 에 추가 된 외부 라이브러리를 볼 수 있다. 삭제하고 싶은 라이브러리의 경우는 build.cradle에서 해당 파일을 삭제 후, 동일하게 Refresh Gradle Project 하면 된다.


* 이 포스팅을 하다가 삽질을 많이 했는데, (4)번 단계에서 Refresh Gradle Project해도 build.gradle에 추가/삭제된 외부 라이브러리가 바로 추가/삭제가 안되는 경우가 있다. 이런 문제가 발생하는 원인은, Eclipse에 import한 gradle project가 gradle Eclipse 플러그인을 통해, Eclipse 설정을 미리 한 경우이다. (https://docs.gradle.org/current/userguide/eclipse_plugin.html) 이런 경우에 문제를 해결하는 방법은, Eclipse에 import 한 프로젝트를 삭제 후 (삭제시, Delete Project contents on disk 옵션 선택하지 않아야, 소스는 유지한 채 프로젝트만 Eclipse에서 지워진다. 이 옵션을 선택하면, 기존 소스가 다 지워지니 주의 요망), 명령창에서 gradle cleanEclipse한 후, (3) 부터 다시 하면 된다. Gradle Eclipse 플러그인과 Eclipse간의 호환문제로 보인다.



글이 도움이 되셨으면, 공감을 눌러주세요.


1 Comments
  • Lifove 2016.04.24 05:48 신고 https://docs.gradle.org/current/userguide/application_plugin.html 에는 다 개발한 프로젝트 dependency libraries 포함 실행가능하게 패키지 해주는 gradle plugin에 대한 설명이 있다. main이 들어있는 클래스 fully-qualified 이름이랑 application 플러그인 설정만 넣으면, build/distributions  디렉터리 밑에 zip파일을 만들어 줌. zip 파일 안에는 외부 라이브러리 jar랑 Windows용 bat파일과 유닉스 기반 OS를 위한 실행 shell script 까지 자동으로 생성되어 있음.
댓글쓰기 폼