Grale로 자바 프로젝트 빌드하기
프로젝트 셋팅
디렉터리 구조
mkdir -p src/main/java/hello를 통해서 기본 디렉터리 생성
HelloWorld.java
package hello;
public class HelloWorld {
public static void main(String[] args) {
Greeter greeter = new Greeter();
System.out.println(greeter.sayHello());
}
}
Greeter.java
package hello;
public class Greeter {
public String sayHello() {
return "Hello world!";
}
}
그레이들 설치
- SDKMAN
- Homebrew (brew install gradle)
중 택하여 그레이들을 로컬 피씨에 설치하거나 https://www.gradle.org/downloads 에서 직접 다운로드
그레이들 기능 확인
gradle tasks
그레이들로 자바 빌드하기
build.gradle 에 java 플러그인 추가
...
apply plugin: 'java'
...
터미널에 그레이들 빌드 명령어 입력
gradle build
빌드가 성공적으로 종료시 build아래 다음과 같은 폴더들이 생성된 것을 확인할 수 있음.
-
classes : 컴파일된 .class 파일
-
reports : 빌드에 의해 생성된 리포트들 (ex>테스트 결과 보고서)
-
libs : 프로젝트 라이브러리들 모음. (ex>jar/war)
의존성 선언
- reositories에 라이브러리를 가져올 위치를 지정
- 의존성 타입
- compile : compile시에 필요한 dependency를 설정한다.
- testCompile : test 시에 필요한 dependency를 설정한다.
- providedCompile : compile시에는 필요하지만, 배포시에는 제외될 dependency를 설정한다. (war plugin이 설정된 경우에만 사용 가능하다)
- providedRuntime : runtime시에만 필요하고, 실행환경에서 제공되는 dependency를 설정한다. (war plugin이 설정된 경우에만 사용 가능하다)
- jar 영역에는 빌드될 jar파일의 정보를 기입 ex>gs-gradle-0.1.0.jar.
그레이들로 실행가능하도록 만들기
application 플러그인을 추가하고 메인클래스를 지정 gradle run으로 실행
- war파일로 빌드하고 싶다면 war plugin 추가
- spring boot 사용중이고 실행 가능한 jar파일로 빌드하고 싶다면 spring-boot-gradle-plugin 추가
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'application'
mainClassName = 'hello.HelloWorld'
// tag::repositories[]
repositories {
mavenCentral()
}
// end::repositories[]
// tag::jar[]
jar {
baseName = 'gs-gradle'
version = '0.1.0'
}
// end::jar[]
// tag::dependencies[]
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
compile "joda-time:joda-time:2.2"
testCompile "junit:junit:4.12"
}
// end::dependencies[]
// tag::wrapper[]
// end::wrapper[]
Gradle Wrapper로 빌드하기
//래퍼 파일 생성
$ gradle wrapper --gradle-version 2.13
//래퍼로 빌드
./gradlew build
'공식메뉴얼 > spring.io' 카테고리의 다른 글
Building Java Projects with Maven (0) | 2020.11.15 |
---|---|
Consuming a RESTful Web Service (0) | 2020.10.31 |
Scheduling Tasks (0) | 2020.09.06 |
Building a RESTful Web Service (0) | 2020.09.06 |