使用IDEA搭建Java Spring Boot Gradle工程 ...
Spring boot Gradle項目搭建
使用IDEA創建Gradle工程
操作大致為:File->new->Project->Gradle(在左側選項欄中)
創建常規以後生成的工程目錄如下:
- build
- gradle
- wrapper
- gradle-wrapper.jar
- gradle-wrapper.properties
- wrapper
- src
- java
- resources
- test
- java
- resources
- build.gradle
- gradlew
- gradlew.bat
- settings.gradle
配置Spring boot
下麵需要對兩個文件進行編輯:
build.gradle文件修改後的內容如下,依賴一般是前面是groupId,中間是artifactId,第三個一般是版本。在repositories配置使用阿裡雲的倉庫,避免下載過慢。
plugins {
id 'java'
id 'com.gradle.build-scan' version '2.0.2'
id 'org.springframework.boot' version '2.0.5.RELEASE'
id 'io.spring.dependency-management' version '1.0.7.RELEASE'
}
group 'seckill'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
implementation 'org.springframework.boot:spring-boot-dependencies:2.0.5.RELEASE'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
components {
withModule('org.springframework:spring-beans') {
allVariants {
withDependencyConstraints {
// Need to patch constraints because snakeyaml is an optional dependency
it.findAll { it.name == 'snakeyaml' }.each { it.version { strictly '1.19' } }
}
}
}
}
}
buildScan {
// always accept the terms of service
termsOfServiceUrl = 'https://gradle.com/terms-of-service'
termsOfServiceAgree = 'yes'
// always publish a build scan
publishAlways()
}
setting.gradle文件修改後的內容如下:
rootProject.name = 'seckill'
enableFeaturePreview('IMPROVED_POM_SUPPORT')
編寫類
首先在src/java下生成源碼目錄com.seckill.spring(相當於com/seckill/spring)
在src/java下創建程式入口類Application.java,其內容如下:
package com.seckill.spring;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
在src/java/com.seckill.spring下創建目錄controllers,併在controllers目錄創建類:HelloWorld,在其中定義根路由並返回Hello World,其代碼如下:
package com.seckill.spring.controllers;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
public class HelloWorld {
@RequestMapping(value = "/", method = RequestMethod.GET)
public Map helloWorld() {
Map<String, Object> ret = new HashMap<>();
ret.put("ret", "Hello World");
return ret;
}
}
運行訪問
- 運行Application類,可以在控制台看到起預設監聽在8080埠
- 瀏覽器訪問:localhost:8080,可以看到返回字元串Hello World
參考鏈接
- 1.Building Spring Boot 2 Applications with Gradle
- 2.Learn Spring Boot
- 3.Building a RESTful Web Service
- Gradle配置阿裡雲Maven鏡像倉庫地址