1. 프로젝트 디렉토리 생성
$ mkdir -p gradle-test
2. 소스 코드 작성
$ cd gradle-test $ mkdir -p src/main/java/test
따라서 gradle-test/src/main/java/test 구조가 디렉토리가 있는 것이다.
2.1. Hello.java
package test; public class Hello { public static void main(String[] args) { You you = new You(); System.out.println(you.say()); } }
2.2. You.java
package test; public class You { public String say() { return "Hello world!"; } }
3. build.gradle 파일
이 파일은 gradle-test 하위에 있으면 된다.
apply plugin: 'java'
4. Gradle Build
# gradle build BUILD SUCCESSFUL in 1s 2 actionable tasks: 2 executed
5. 확인
build 디렉토리 생성되고 그 안에 class 파일들이 생성된다.
6. Dependency 설정
6.1. You.java 수정
package test; import org.joda.time.LocalTime; public class You { public String say() { LocalTime currentTime = new LocalTime(); return "Hello world! " + currentTime; }
6.2. 빌드
# gradle build > Task :compileJava FAILED /src/gradle-test/src/main/java/test/You.java:3: error: package org.joda.time does not exist import org.joda.time.LocalTime; ^ /src/gradle-test/src/main/java/test/You.java:7: error: cannot find symbol LocalTime currentTime = new LocalTime(); ^ symbol: class LocalTime location: class You /src/gradle-test/src/main/java/test/You.java:7: error: cannot find symbol LocalTime currentTime = new LocalTime(); ^ symbol: class LocalTime location: class You 3 errors FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileJava'. > Compilation failed; see the compiler error output for details. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 1s 1 actionable task: 1 executed
6.3. build.gradle 수정
apply plugin: 'java' repositories { mavenCentral() } dependencies { compile "joda-time:joda-time:2.2" }
6.4 재빌드
# gradle build BUILD SUCCESSFUL in 6s 2 actionable tasks: 2 executed
7. (참고) gradle.build 예제
plugins { id 'org.springframework.boot' version '2.1.7.RELEASE' id 'io.spring.dependency-management' version '1.0.8.RELEASE' id 'java' } group = 'io.pivotal.cloud' version = '0.0.1-SNAPSHOT' sourceCompatibility = '1.8' configurations { developmentOnly runtimeClasspath { extendsFrom developmentOnly } } repositories { mavenCentral() } ext { set('springCloudVersion', "Greenwich.SR2") } dependencies { implementation 'org.springframework.boot:spring-boot-starter-amqp' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.cloud:spring-cloud-stream' implementation 'org.springframework.cloud:spring-cloud-stream-binder-rabbit' developmentOnly 'org.springframework.boot:spring-boot-devtools' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.cloud:spring-cloud-stream-test-support' compileOnly "org.springframework.boot:spring-boot-configuration-processor" } dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" } } compileJava.dependsOn(processResources)