TOOL/BUILDER 2015. 8. 26. 18:00

여태까지 IDE를 Eclipse로 써왔는데 빌드라는 걸 몰라도 문제가 없었기 때문에 아무 걱정 없었다.

회사에 들어와보니 Gradle이라는 빌드툴이라는 것을 사용하고 있었고 난 이거를 익혀야만 하게 되었다.


"대체 왜!? Gradle을 써야돼!?" 라는 생각이 들어서 빌드툴 이런 게 왜 필요하냐고 회사 선배께 물으니... 

Eclipse에는 Ant빌드툴이 내장돼있어서 자동으로 해준거다. 라는거다.


하지만, 회사에서 IDE는 IntelliJ 그리고 Build Tool은 Gradle을 사용한다고 하니 따라가기로 했다라기 보다는 따라가야 했다.



"빌드는 왜!? 뭘!? 하는 걸까?" 어디에도 명확하게 안 써있다.






//////////////////////////////////////////////////

/////  Gradle - Java JVM 기반, 오픈 소스 빌드 도구

//////////////////////////////////////////////////


///////////////////////// 기본

///// 참조

http://gmind.tistory.com/entry/Gradle을-써야-하는-이유

http://horajjan.blog.me/220411321179

http://kwon37xi.egloos.com/4747016

http://kwonnam.pe.kr/wiki/gradle

★ http://dynaticy.tistory.com/entry/Gradle-UserGuide-도전기-1-개요

★ http://knoc720.blogspot.kr/2015/02/maven-gradle.html 

///// 설치 

Download : http://gradle.org/

환경변수 Path설정 : ./bin/gralde 또는 ./bin/gradle.bat

확인 : gralde -version

///// 파일구성

build.gradle - 프로젝트의 루트와 각 모듈의 루트마다 존재

setting.gradle

///// 라이브러리 로컬저장소 비교

- Maven : .m2/repository

- Gradle : .gradle/caches/module-2/files-2.1

///// Groovy 언어

참조 : http://forgiveall.tistory.com/155


///////////////////////// 정보 긁어모으자(작성중)

///// gradle.properties 파일 - 자동으로 import 됨.

///// build.gradle 파일 - 빌드 기능 정의

///// settings.gradle 파일 - 싱글 or 멀티프로젝트 구성 정의


///// 

// buildscript{} - 빌드 기능 이외, 직접 만든 plugin 기능이나 외부 기능 추가 정의

// apply plugin - plugin 선언

// subproject{} - 

// allproject{} - 전체프로젝트에 공통으로 설정할 스크립트

// repositories{} - dependencies 라이브러리 파일을 운영하는 사이트 주소 선언

// dependencies{} - 프로젝트에서 사용할 라이브러리 선언


///// Gradle로 Maven의 pom.xml 만들기

- build.gradle파일에 다음 플러그인을 추가

apply plugin: ‘maven’

- 터미널에서 다음 명령으로 task가 추가되었는지 확인

> gradle tasks

- 메이븐 pom.xml 파일 만들기 task 실행

> gradle writeNewPom


 


 

 

 

// mavenCentral()를 사용하여 기본 Maven repositories를 명시하는 법

repositories {

mavenCentral()

}

 

// maven repository를 remote하는 법

repositories {

maven{

url "http://repo.mycompany.com/maven2"

}

}

 

// ivy repository를  remote하는 법

repositories{

ivy {

url "http://repo.mycompany.com/maven2"

}

} 

// 로컬 저장소 참조

repositories{

ivy {

url "../local-repo"

}

}

 

// 사용자 정의 repository에 접속 계쩡정보를 추가 할 경우의 방법

repositories{

maven {

credentials{

username 'user'

password 'password'

}

url "http://repo.mycompany.com/maven2"

}

}

 

 

compile

runtime

testCompile

testRuntime

 

 

///// 구성하기

// configurations

configurations{

compile {

description = 'compile classpath'

transitive = true

}

runtime {

extendsFrom compile

}

}

configurations.compile {

description = 'compile classpath'

}

// dependencies

// 맵지정방식

dependencies {

compile group: 'org.hibernate', name: 'hjibernate-core', version: '3.6.7.Final'

}

// 맵지정방식

dependencies {

compile 'org.hibernate:hibernate-core:3.6.7.Final'

}

 

 

//

 

 

 

apply

dependencies{}

 

 

 

 

 

 

 

//////////////////////////////////////////////////

/////  maven

//////////////////////////////////////////////////

///// lifecycle

// default lifecycle

// clean lifecycle

// site lifecycle

 

///// profile

 

///// POM (Project Object Model)

<artifactId>

<groupId>

<version>

<name>

<packaging>

<distributionManagement>

<parent>

<version>

<scm>

<dependencyManagement>

<dependencies>

 

///// CoC (Convention over Configuration)

 

 

 

Maven - 선언적, 관습과 설정

Ant - 명령적, 설정과 스크립트 작성

Gradle -

 

'TOOL > BUILDER' 카테고리의 다른 글

[Gulp] 시작하기 - 버전 3  (0) 2016.01.17
[GRUNT 0.4.x] Gruntfile.js  (0) 2016.01.02
[GRUNT 0.4.x] 모듈 설치  (0) 2016.01.02
[Maven] tomcat:run  (0) 2015.12.30
[Maven] 공부중...  (0) 2015.12.11