Gradle + Spring Boot with Intelij IDE

Chiwa Kantawong (Pea)
3 min readMar 25, 2021

--

พอดีต้องไปทำงานกับ project ที่ใช้ Gradle โดยปกติผมใช้ Maven จึงค่อนข้างเป็นอะไรที่ใหม่และก็ติดปัญหามากมายกว่าจะเข้าใจจึงตัดสินใจสร้างบทความนี้เผื่อจะได้ช่วยเพื่อนๆ มือใหม่ได้ แต่ยังไงแวะไปอ่านที่นี้สักหน่อยนะครับ https://docs.gradle.org/6.8.3/userguide/userguide.html (Latest Vesion ในวันที่ผมเขียน Blog นี้ล่ะครับ)

เช่นเคยนะครับผมจะใช้ Intellij เป็น IDE บน Mac OS นะครับ เราจะสร้าง Rest API ง่ายๆ กัน เริ่มกันเลยครับ

เร่ิมสร้างโปรเจคส์ File -> New Project

เลือก Gradle และ Java จริงๆ สามารถสร้างได้จาก https://start.spring.io/ ได้นะครับแต่บทความนี้ต้องการให้ทราบ step ต่างๆ

สร้าง project name = hello-api

Intellij จะ สร้าง file ต่างๆ ที่ Gradle จะใช้ และจะ Start Gradle Daemon ขึ้นมา ด้านขวาจะมี tab ของ Gradle ด้วยซึ่งก็เหมือนกับ Maven ที่เราใช้ๆ กัน

ไปที่ Terminal พิมพ์ ./gradlew ทดสอบดูว่าทุกอย่างโอเคไหม

ซึ่งเครื่องผม Welcome to Gradle 5.2.1. ซึ่งไม่ใช่ Version ล่าสุดผมจึงต้องไปแก้ไฟล์

gradle-wrapper.prperties จาก

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

เป็น

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

ลองใหม่จะได้

พร้อมลุยละครับ แก้ build.gradle

plugins {
id 'org.springframework.boot' version '2.4.4'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}

group 'org.example'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testCompile group: 'junit', name: 'junit', version: '4.12'
}

สร้าง MainApplication.java

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan("com.zengcode")
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
public class MainApplication {

public static void main(String[] args) {
SpringApplication.run(MainApplication.class, args);
}

}

ต่อไปสร้าง API ง่ายๆ กันครับ

package com.zengcode.controller;

import org.springframework.web.bind.annotation.GetMapping;

@org.springframework.web.bind.annotation.RestController
public class RestController {

@GetMapping("/ping")
public String ping() {
return "pong";
}

}

ทดลองรันดูครับ

เป็นอันเรียบร้อยครับ

--

--

Chiwa Kantawong (Pea)
Chiwa Kantawong (Pea)

Written by Chiwa Kantawong (Pea)

Software Development Expert at Central Tech

No responses yet