3 min to read
Gradle 수동 설치하기
Gradle 수동 설치 및 build.gradle 설명
Spring MVC 프로젝트 수행 시 Build 자동화를 위하여 Gradle을 사용한다.(아니면 Maven) Eclipse에서 Spring 프로젝트 생성 시 Gradle 프로젝트를 생성하여 진행할 수도 있지만, Gradle의 동작원리를 공부하기 위해 Gradle을 수동으로 한번 설치를 진행해보자. 수동으로 설치를 하기 위해서는 아래와 같이 진행해야 한다.
1) Gradle설치 https://gradle.org/install/ 에서 Gradle 다운로드.
Eclipe 최신버전에서는 Gradle 혹은 Maven plugin 이 설치되어 있기 때문에 Gradle을 별도로 설치하지 않아도 되지만, 수동으로 Gralde 프로젝트를 수행하는 방법을 익혀보기 위해서 Gradle을 별도로 설치해 보았다.
1-1. https://gradle.org/release/ 에서 최신 버전의 Gradle 다운로드.
1-2. 다운로드 후 PATH경로에 “[Gradle설치폴더]\bin” 추가.
1-3. cmd창에서 gradle -version
으로 버전 확인
1-4. 프로젝트 루트 디렉토리에서 build.gradle 파일 생성
apply plugin: 'java'
apply plugin: 'eclipse-wtp'
apply plugin: 'war'
compileJava.options.encoding = 'UTF-8' // 소스파일의 인코딩 형식 지정
sourceCompatibility = 1.8 // 소스코드의 자바문법 버전
version = '1.0'
eclipse {
project.natures "org.springsource.ide.eclipse.gradle.core.nature"
wtp {
facet {
facet name: 'jst.web', version: '3.0' // Server Spec version 지정
facet name: 'jst.java', version: '1.8' // java version 지정
}
}
}
jar {
manifest {
attributes 'Inplementation-Titme': 'Gradle Quickstart', 'Implementation-Version': version
}
// manifest : MANIFEST.MF 파일에 들어갈 속성-값 정보를 설정. 이 파일은 jar 파일 안에 META-INF에 들어감
// archiveName : JAR 파일 이름. 지정하지 않으면 다음 조합으로 이름 지정. baseNAme-appendix-version-classfier.extension 이렇게 파일명이 지정됨
// baseName : JAR파일의 기본 이름.
// appendix : 추가할 말
// version : 버전
// classfier :
// extension : 확장자. 기본값은 jar
// excludes : jar파일에서 제외할 파일 지정. ['**/*.tx'] -> 폴더에 상관없이 확장자가 txt파일은 제외한다는 뜻
// includes : jar파일에서 포함할 파일에 대해 지정. ['conf/*.xml'] -> conf 폴더에 xml파일을 포함
}
repositories {
mavenCentral()
// mavenCentral() : Maven 중앙 서버를 저장소로 지정. 서버의 기본 URL은 http://repo1.maven.org/maven2 이다
// flatDir() : 로컬 폴더를 저장소로 지정
// ivy() : Apache Ivy 서버를 저장소로 지정
// jcenter() : Bintray의 jcenter 서버를 저장소로 지정
// mavenLocal() : Maven 로컬 임시 보관소를 저장소로 지정
}
dependencies {
providedCompile 'javax.servlet:javax.servlet-api:3.0.1'
compile 'org.springframework:spring-context:5.1.2.RELEASE'
compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
testCompile group: 'junit', name: 'junit', version: '4.12'
// compile 라이브러리 : 라이브러리를 compileJava 작업을 수행할 때 사용
// runtime 라이브러리 : 라이브러리를 실행 시에 사용
// testCompile 라이브러리 : 라이브러리를 compileTestJava 작업을 수행할 때 사용.
// 이 작업은 compileJava를 포함하고 있으므로 compile한 라이브러리는 제외하고 적음
// testRuntile 라이브러리 : 라이브러리를 test 작업을 수행할 때 사용.
// 이 작업은 compileJava, compileTestJava 작업을 포함하고 있으므로, compile, testCompile한 라이브러리는 제외하고 적음
// providedCompile : compile과 같다. 다만 .war파일에는 포함되지 않는다.
// providedRuntime : Runtime과 같다. 다만 .war파일에는 포함되지 않는다.
// 라이브러리 표기법
// 첫째 . ''group:name:version:classfier
// Example : 'org.springframework:spring-context:5.1.2.RELEASE'
// 둘째. group: '그룹명', name: '라이브러리 이름', version: '라이브러리 버전', classifier: ''분류 접미사'
// Example : compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
// name을 제외하면 꼭 적을 필요는 없음.
}
test {
systemProperties 'property': 'value'
// SystemProperties : 테스트를 실행하는 JVM에 전달할 시스템 프로퍼티 지정
// classpath : 테스트 작업을 수행할 때 사용할 클래스 경로 지정
// excludes : 테스트에서 제외할 클래스 지정. ANT 스타일 패턴을 사용한다. 예) excludes = ['org/foo/**'] 이건 org.foo 패키지 아래 모든 클래스를 테스트에서 제외
// includes : 테스트에 포함할 클래스 지정. ANT 스타일 패턴을 사용한다. 예) includes = ['org/foo/**'] 이건 org.foo 패키지 아래 모든 클래스를 테스트에 포함
// minHeapSize : 테스트 할 때 JVM에 전달할 최소 힙 메모리 크기
// maxHeapSize : 테스트 할 때 JVM에 전달할 최대 힙 메모리 크기
// jvmArgs : JVM에게 전달할 추가 인자 값. 시스템 프로퍼티와 최대/최소 힙 메모리 크기는 별도로 지정하기 때문에 이 항목에 포함되서는 안된다.
// useJUnit() : 테스트할 때 사용할 프레임워크로 JUnit을 지정한다. 기본으로 JUnit을 사용
// useTestNG() : 테스트할 때 사용할 프레임워크로 TestNG를 지정한다. 생략하면 JUnit을 사용
// beforeTest{} : 테스트를 시작하기 전에 수행할 명령들을 지정
}
// uploadArchives {} : 아카이브파일(.jar) 배포
uploadArchives {
repositories {
flatDir {
dirs 'repos'
}
}
}
1-5. 프로젝트 루트 디렉토리에서 gradle wrapper
명령어 실행하여 래퍼파일 생성. 실행이 성공하면 gradle.bat파일과 gradle파일, gradle폴더가 생성됨. 해당 파일들은 gradle 명령어 대신 사용할 수 있는 래퍼파일임. 이 래퍼파일을 사용하면 Gradle 설치 없이 Gradle 명령어를 사용할 수 있다.
1-6. gradlew compileJava
명령어로 컴파일.
1-7. Gradle 프로젝트를 Eclipse에서 import
1-8. Spring 프로그램 작성
출처 : http://dynaticy.tistory.com/
Comments