使用Gradle创建SpringBoot项目

简介: 使用Gradle创建SpringBoot项目

Spring Boot Gradle 插件在Gradle 提供Spring Boot 支持。它允许您打包可执行jar 或war 归档文件,运行SpringBoot 应用程序,并使用Spring-Boot-dependencies 提供的依赖管理。


① 创建工程

如下所示,首先使用Spring Initializr创建项目,然后通过Idea的Settings修改gradle。

这里Server URL :start.spring.io还可以换成阿里云的 https://start.aliyun.com/。


② 引入插件

plugins {
  id 'org.springframework.boot' version '2.3.7.RELEASE' 
  //维护springboot版本号,不单独使用,和下面两个插件一起用
  id 'io.spring.dependency-management' version '1.0.10.RELEASE'
  //进行依赖管理,在引入其它boot依赖时省略版本号、解决jar包冲突问题
  id 'java'
}

③ 引入所需要的依赖

dependencies {
  implementation 'org.springframework.boot:spring-boot-starter'
  implementation 'org.springframework.boot:spring-boot-starter-web' //省略版本,原生bom支持,插件management提供
  testImplementation('org.springframework.boot:spring-boot-starter-test') {
  exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
  }
}
test {
  useJUnitPlatform()
}


④ 运行项目

要想运行当前Springboot 项目,直接执行gradle bootRun 指令或者idea 右侧按钮即可。


当然如果想让当前项目打成可执行jar 包,只需执行: gradle bootJar 指令即可。Cloud 项目创建也可以借助于脚手架创建,与Boot 项目类似。

⑤ 拓展spring-boot-gradle-plugin 插件

如下所示,这里我们可以在build.gradle中指定仓库与依赖。

//构建Gradle脚本自身需要的资源,可以声明的资源包括依赖项、第三方插件、maven仓库地址等。
buildscript {
    ext {
        springBootVersion = '2.2.1.RELEASE'
        springCloudVersion = 'Hoxton.RELEASE'
        springCloudAlibabaVersion = '0.2.2.RELEASE'
    }
    //设置仓库
    repositories {
        maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
        maven { url 'https://repo.spring.io/milestone'}
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}


⑥ 多module工程

如下图所示,工程包括多个module。其实与传统多module工程并无区别,同样是创建工程后创建module。这里说明一下Gradle的配置。


如下是settings.gradle配置文件示例:

rootProject.name = 'meinian-parent'
include 'meinian-bean'
include 'meinian-dao'
include 'meinian-service'
include 'meinian-web'
include 'meinian-mobile-web'


如下是build.gradle配置文件示例:

//父工程的坐标
group 'com.jane'
version '1.0-SNAPSHOT'
//配置全局, 包括root项目和子项目---如果配置了allprojects ,
//那么subprojects 中就无需配置编码和仓库
allprojects {
    group 'com.jane'
    version '1.0-SNAPSHOT'
    //配置编码格式
    tasks.withType(JavaCompile) {
        options.encoding = "UTF-8"
    }
    //设置仓库
    repositories {
        maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
        maven { url 'https://repo.spring.io/milestone'}
    }
}
//对所有子工程设置统一配置
subprojects {
    //添加插件
    apply plugin: 'java'
    //基本JDK配置
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
    compileJava.options.encoding "UTF-8"
    compileTestJava.options.encoding "UTF-8"
    tasks.withType(JavaCompile) {
        options.encoding = "UTF-8"
    }
    group 'com.jane'
    version '1.0-SNAPSHOT'
    repositories {
        mavenLocal()
        maven {url "https://maven.aliyun.com/repository/public"}
        maven {url "https://maven.aliyun.com/repository/central"}
        maven {url "https://maven.aliyun.com/repository/google"}
        maven {url "https://maven.aliyun.com/repository/spring"}
        mavenCentral()
    }
    //依赖的配置:设置通用的依赖
    dependencies {
        testImplementation 'org.junit.jupiter:junit-jupiter-api'
        testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
        implementation 'log4j:log4j:1.2.17'
    }
    test {
        useJUnitPlatform()
    }
}
//为每个子工程设置依赖
project("meinian-bean"){
    dependencies {
        compileOnly 'org.projectlombok:lombok:1.18.24'
    }
}
project("meinian-dao"){
    apply plugin: 'java-library'//支持api
    dependencies {
        api project(':meinian-bean')
        implementation 'org.mybatis:mybatis-spring:1.2.3'
        implementation 'com.alibaba:druid:1.0.15'
        implementation 'org.mybatis:mybatis:3.3.0'
        implementation 'mysql:mysql-connector-java:5.1.36'
    }
}
project("meinian-service"){
    apply plugin: 'java-library'//支持api
    dependencies {
        api project(':meinian-dao')
        implementation 'org.springframework:spring-web:4.1.7.RELEASE'
        implementation 'org.springframework:spring-test:4.0.5.RELEASE'
        implementation 'org.springframework:spring-jdbc:4.1.7.RELEASE'
        implementation 'org.aspectj:aspectjweaver:1.8.6'
    }
}
project("meinian-web"){
    apply plugin: 'war'
    dependencies {
        implementation project(':meinian-service')
        implementation 'org.springframework:spring-webmvc:4.1.7.RELEASE'
        implementation "com.fasterxml.jackson.core:jackson-databind:2.2.3"
        implementation "com.fasterxml.jackson.core:jackson-annotations:2.2.3"
        implementation "com.fasterxml.jackson.core:jackson-core:2.2.3"
        compileOnly 'javax.servlet:servlet-api:2.5'
        implementation 'jstl:jstl:1.2'
    }
}
project("meinian-mobile-web"){
    apply plugin: 'war'
    dependencies {
        //implementation project(':meinian-bean')
        implementation project(':meinian-service')
        implementation 'org.springframework:spring-webmvc:4.1.7.RELEASE'
        implementation "com.fasterxml.jackson.core:jackson-databind:2.2.3"
        implementation "com.fasterxml.jackson.core:jackson-annotations:2.2.3"
        implementation "com.fasterxml.jackson.core:jackson-core:2.2.3"
        compileOnly 'javax.servlet:servlet-api:2.5'
        implementation 'jstl:jstl:1.2'
    }
}



目录
相关文章
|
3天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的软件工程项目管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的软件工程项目管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
18天前
|
Java 应用服务中间件 Maven
Spring Boot项目打war包(idea:多种方式)
Spring Boot项目打war包(idea:多种方式)
42 1
|
5天前
|
JavaScript Java 测试技术
基于小程序的家政项目小程序+springboot+vue.js附带文章和源代码设计说明文档ppt
基于小程序的家政项目小程序+springboot+vue.js附带文章和源代码设计说明文档ppt
19 0
|
17天前
|
Java Maven
SpringBoot项目的用maven插件打包报Test错误
SpringBoot项目的用maven插件打包报Test错误
|
2天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的项目监管系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的项目监管系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
2天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的程序设计实践项目管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的程序设计实践项目管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
2天前
|
JavaScript Java 测试技术
基于springboot+vue.js的大学生科创项目在线管理系统附带文章和源代码设计说明文档ppt
基于springboot+vue.js的大学生科创项目在线管理系统附带文章和源代码设计说明文档ppt
10 1
|
2天前
|
JavaScript Java 测试技术
基于springboot+vue.js的科研项目验收管理系统附带文章和源代码设计说明文档ppt
基于springboot+vue.js的科研项目验收管理系统附带文章和源代码设计说明文档ppt
9 0
|
4天前
|
JavaScript Java 关系型数据库
springboot+vue毕业生信息招聘平台源码(前后端分离项目)
这是一个基于SpringBoot的毕业生信息招聘平台的项目介绍。该项目提供管理员、企业和毕业生三个角色的功能模块,包括但不限于: - 管理员可管理企业信息、空中宣讲会、招聘岗位、毕业生、个人简历、信息咨询、线上面试、面试回复、论坛和考试。 - 企业可管理个人信息、空中宣讲会、招聘岗位、信息咨询、线上面试、面试回复和考试记录。 - 毕业生可管理个人简历、求职信息、信息咨询、线上面试、面试回复、收藏和考试。
|
4天前
|
JavaScript Java 关系型数据库
springboot+vue闲一品交易平台源码(前后端分离项目)
本文是关于一个基于SpringBoot的闲一品交易平台的介绍。项目由Java开发者风歌分享,提供各类Java毕设项目,包括SSM、SpringBoot等框架的源码。开发环境包括Java 1.8、SpringBoot、MySQL 5.7+、Navicat11等。系统分为管理员、用户和前台首页三个功能模块,涵盖用户管理、零食信息管理、订单评价、零食资讯、轮播图管理、订单管理等多个子功能。文章还展示了部分界面截图。如需了解更多详情或获取项目源码,可联系作者风歌。