IDEA使用Gradle構建SpringBoot專案工程

智慧zhuhuix發表於2020-07-24

背景

  • 最近在研究搭建spring原始碼除錯環境時,接觸到到gradle專案構建工具。由於之前習慣於maven專案的構建,故通過此文記錄相關gradle的專案構建知識。

Gradle

Gradle是一個構建工具,用於管理專案依賴和構建專案工程。Gradle拋棄了Maven的基於XML的繁瑣配置,採用特定語言Groovy的配置,大大簡化了構建程式碼的行數。

  • 專案結構
    在這裡插入圖片描述
  • Plugin Sample
pluginManagement {
	repositories {
		gradlePluginPortal()
		maven { url 'https://repo.spring.io/plugins-release' }
	}
}

plugins {
	id "com.gradle.enterprise" version "3.2"
	id "io.spring.gradle-enterprise-conventions" version "0.0.2"
}

include "spring-aop"
include "spring-aspects"
include "spring-beans"
include "spring-context"
include "spring-context-indexer"
include "spring-context-support"
include "spring-core"
include "kotlin-coroutines"
project(':kotlin-coroutines').projectDir = file('spring-core/kotlin-coroutines')
include "spring-expression"

IDEA使用Gradle構建SpringBoot專案工程

新建SpringBoot專案

在這裡插入圖片描述

  • 使用Gradle構建專案

在這裡插入圖片描述

  • 專案結構
    • src結構和maven結構一致;gradle資料夾 存放gradle wrapper相關檔案;build.gradle相當於maven裡面的pom.xml,setting.gradle用於多模組的配置。

在這裡插入圖片描述

  • build.gradle
    • plugins:外掛配置;
    • sourceCompatibility:jdk版本號
    • repositories:倉庫配置,mavenCentral()代表中央倉庫;
    • dependencies:依賴的座標集合
plugins {
    id 'org.springframework.boot' version '2.3.1.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
}

test {
    useJUnitPlatform()
}

新增依賴

在這裡插入圖片描述

  • 專案依賴的格式為 作用範圍修飾符 ( ‘groupId:artifactId:version’ )
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }

    // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa
     compile ('org.springframework.boot: spring-boot-starter-data-jpa: 2.3.1 ')

}

gradle打包

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

相關文章