이번 강좌에서는 빌드도구
를 이용하기 위한 환경을 설정하고 프로젝트에서 해당 빌드도구를 사용하는 일반적인 사항을 배우게 됩니다.
이 강의를 통해 개발목적
에 따라 어떤 빌드도구가 필요한지 이해하고 자신에게 필요한 빌드도구
를 설치하고 설정
하는 방법을 배우게 됩니다.
01: maven
maven 은 대표적인 자바 빌드 도구 입니다. 오래된 Ant
를 대체해 나오게 되었으며 pom.xml
이라고 하는 설정파일에 프로젝트 빌드에 필요한 라이브러리 및 각종 빌드 설정을 하는 방식 입니다.
별도의 프로그램 설치나 환경설정이 필요 없어 이클립스에서 가장 간편하게 사용할 수 있는 빌드 도구 입니다.
pom.xml 설정에 따라 개발도구에서 프로젝트 디렉토리 구성도 자동으로 생성이 가능하며 프로그램의 실행이나 배포 까지도 지원 합니다.
maven 학습자료
- https://maven.apache.org/
02: Gradle
Gradle
은 가장 최신
의 자바 빌드 도구 입니다. Maven 의 문제점들을 해결하고 보다 대규모 프로젝트
에서 빠른 빌드 속도
를 자랑하며 강력한 기능을 제공하는 등 점차 Maven 을 대체
해 나가고 있습니다.
Maven 과 유사하지만 xml 이 아닌 build.gradle
이라는 파일에 Groovy
기반의 설정을 통해 동작 합니다.
다만 초기 설정
이 좀 까다롭고
제대로 활용하기 위해서는 상당한 학습을 요하므로 기존 Maven 사용자들이 쉽게 이전하지 못하고 있기도 합니다. 처음 시작한다면 Gradle 을 권장하며 안드로이드
개발의 기본 빌드 도구도 Gradle
입니다.
Gradle 학습자료
- https://gradle.org/
- 프리렉 Gradle 강좌
Gradle 설치 및 설정
- homebrew 윈도우 클론 scoop: 윈도우 파워쉘에서 다음실행
$ iex (new-object net.webclient).downloadstring('https://get.scoop.sh’)
- gradle 설치
$ scoop install gradle
- Grade plugin 설치: 이클립스에서 buildship gradle integration 설치 -> 이클립스 EE 에는 이미 설치되어 있음.
- New -> Gradle -> Gradle Project 로 프로젝트 생성
- gradle.properties 파일 생성 및 자바경로 지정 -> 자신의 컴퓨터에 설치된 자바 경로를 확인후 지정해야 함.
mac os인 경우 /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home 를 실행해서 나오는 경로를 등록 함.
org.gradle.java.home=C:/Program Files/Java/jdk-10.0.2
-
build.gradle 수정 -> 일반 자바 프로젝트인 경우
plugins { id 'java' } dependencies { testImplementation 'junit:junit:4.12' } repositories { jcenter() }
-
build.gradle 수정 -> 웹프로젝트인 경우
plugins { id 'java' id 'war' } dependencies { testImplementation 'junit:junit:4.12' providedCompile 'javax.servlet:javax.servlet-api:3.1.0' compile group: 'javax.servlet', name: 'jstl', version: '1.2' compile group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.3' compile group: 'com.h2database', name: 'h2', version: '1.4.197' } repositories { jcenter() }
- Gradle Tasks -> build 수행해서 에러 없으면 OK
- JAVA_HOME 관련 에러 발생하면 이클립스 환경설정 -> Gradle -> Specific Grade Version -> 4.10.2 로 지정(최신)
- project 선택 -> Gradle -> Refresh Grade Project
- 프로젝트 -> properties -> Project Facet -> Dynamic Web Module 4.0, Java 10 -> apply
- 이후 기존 이클립스 WTP 와 같은 구조에서 실행하게 됨.