ใช้ Gradle สร้าง Spring Boot Application

Phayao Boonon
3 min readDec 24, 2018

--

ส่วนใหญ่ที่ผมสร้าง Spring Boot project ใช้ Maven จัดการกับ dependency ต่างๆ แต่ก็ไม่ค่อยได้ใช้ Gradle มากเท่าไหร่ วันนี้เลยอยากจะมาลองใช้ Gradle จัดการ dependency แทน Maven ดูบ้าง จริงๆ แล้วสามารถใช้ start.spring.io สร้าง Spring Boot project แต่ในบทความนี้จะเล่นท่ายากหน่อยโดยสร้าง Gradle project มาเองเพื่อทำความเข้าใจ Gradle ให้มากขึ้น

Gradle คืออะไร

เป็นเครื่องมือสำหรับ build project อัตโนมัติ โดยใช้แนวคิดเดียวกับ Apache Ant และ Apache Maven แต่จะใช้ภาษา Groovy มาเขียนสคริปท์แทน XML ใน Maven แต่ก็สามารถใช้ Kotlin ได้เช่นเดียวกัน สำหรับสร้าง Java, Groovy และ Scala project

สำหรับ Spring Boot แล้วสามารถใช้ Gradle จัดการ dependency ด้วย Spring Boot Gradle plugin อีกทั้งยังช่วย build, package และ run Application ได้ด้วย

ก่อนอื่นต้องติดตั้ง Gradle ในเครื่องก่อน สามารถทำตามนี้เลย

สร้าง Gradle project

เพื่อสร้าง Gradle project เราสามารถใช้คำสั่ง gradle init ก็จะได้โครงร่างของ Gradle project

$ gradle init --type java-applicationBUILD SUCCESSFUL in 0s
2 actionable tasks: 2 executed

โครงสร้าง Gradle project ประกอบด้วย

├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
├── main
│ └── java
│ └── App.java
└── test
└── java
└── AppTest.java
  • build.gradle — เป็น build script สำหรับ config project
  • gradle-wrapper.jar — เป็นไพล์ JAR สำหรับรัน Gradle wrapper
  • gradle-wrapper.properties — เป็น config สำหรับรัน Gradle wrapper
  • gradlew — เป็น script Gradle wrapper สำหรับ Unix-base system
  • gradlew.bat — เป็น script Gradle wrapper สำหรับ Windows system
  • settings.gradle — เป็นไฟล์ตั้งค่าของ script สำหรับ Gradle build
  • src/main/java/App.java — เป็นไฟล์ Java เริ่มต้น
  • src/test/java/App.java — เป็นไฟล์ Test ของ Java เริ่มต้น

ในไฟล์ build.gradle ที่สร้างขึ้นจะมีค่าเริ่มต้นสำหรับ Java project มาให้แล้ว

เพิ่ม Spring Boot Dependency

หลังจากที่สร้าง Gradle project และได้ script เริ่มต้นแล้ว เราก็เพิ่ม Spring Boot plugin และ dependency ให้กับ build.gradle

เพิ่ม org.springframework.boot ในส่วน plugins และ dependencies ลบ plugins id ‘application’ และ mainClassName ออก เพราะเราจะใช้ Spring Boot ในการ start application

เพิ่ม package demo และย้าย App.java ไปอยู่ใน package demo พร้อมทั้ง AppTest ด้วย จะได้โครงสร้างดังนี้

└── src
├── main
│ └── java
│ └── demo
│ └── App.java
└── test
└── java
└── demo
└── AppTest.java

refactor class App ในไฟล์ App.java ให้เป็น Spring Boot application แบบง่ายๆ

และ refactor class AppTest ในไฟล์ AppTest.java ให้ทดสอบ Get endpoint /hello

Run Project

หลังจากที่เพิ่ม Spring Boot plugin และ dependency แล้วก็ลอง build project ด้วยคำสั่ง ./gradlew build เพื่อตรวจสอบว่า project เราไม่มีปัญหาและสร้างไฟล์ Jar ไว้ใน /build/libs folder และตรวจสอบ task ที่รองรับด้วยคำสั่ง ./gradlew tasks

สามารถ run project ด้วย task bootRun ดังนั้นใช้คำสั่ง ./gradlew bootRun เพื่อ run Spring Boot application ปรกติ

สรุป

จากขั้นตอนในบทความนี้ทำให้สร้าง Spring Boot application project ที่ใช้ Gradle ในการจัดการ dependency และ build, package และ run application ที่สร้างขึ้นได้

--

--

Phayao Boonon
Phayao Boonon

Written by Phayao Boonon

Software Engineer 👨🏻‍💻 Stay Hungry Stay Foolish

No responses yet