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)