그떄그때 필요한 것 넣으며 차차 추가


메이븐과 비슷한 빌드툴로 groovy 를 사용한다. 메이븐의 편리한과 ant의 유연함을 담았다고 한다..

모든 Gradle 스크립트는 두 가지 개념(projects와 tasks)으로 구성. 모든 Gradle 빌드는 하나 이상의 projects로 구성. 각 project는 하나 이상의 task들로 구성. task는 어떤 클래스를 컴파일하거나 JAR를 생성하거나 javadoc을 만드는 작업들을 의미. 간단한 squid task를 위와 같이 직접 만들 수 있음. gradle -q squid로 해당 task만 실행해 볼 수 있음. Gradle 스크립트는 DSL이지만, 몇가지 약속을 제외하면 groovy라는 언어가 지닌 강점을 모두 이용할 수 있음.

dependsOn을 사용해서 task간의 의존성을 만들 수 있음. 위 예제의 경우, octopus task를 실행하면 먼저 squid가 실행되고 octopus가 실행됨.


기본 개념 :

ext - 프로젝트 전체와 서브 프로젝트에서도 접근가능한 변수 def - 해당 스크립트의 로컬에서만 접근 가능

apply plugin : ~~ ~~의 플러그인을 gradle에 적용

repositories를 사용해서 의존성을 가져올 주소를 설정.

암호 걸려있다면 credentials{}

dependencies를 사용해서 설정된 Repository에서 가져올 아티팩트를 설정.

dependencies {
    // 로컬 jar 파일의 의존성 설정
    compile fileTree(dir: 'libs', include: '*.jar')
    // 로컬 프로젝트간 의존성 설정
    compile project(':shared')
    // 컴파일 타임에 의존성을 받아옴
    compile 'com.google.guava', name: 'guava:23.0'
    // 테스트시만 의존성을 받아옴
    // 마이너 버전을 '+'로 설정해서 항상 4점대 최신 버전을 사용
    testCompile group: 'junit', name: 'junit', version: '4.+'
    // 컴파일할때는 사용하고, 아티팩트를 만들때는 포함하지 않음
    compileOnly 'org.projectlombok:lombok:1.16.18'
    // 실행할때 의존성을 받아옴(기본적으로 컴파일을 모두 포함)
    runtime('org.hibernate:hibernate:3.0.5')
}

Jar{} - Jar 생성 설정