Gradle 수동 설치하기

Gradle 수동 설치 및 build.gradle 설명

Imagem de capa

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/