使用Gradle创建SpringBoot项目

Spring Boot Gradle 插件在Gradle 提供Spring Boot 支持。它允许您打包可执行jar 或war 归档文件,运行SpringBoot 应用程序,并使用Spring-Boot-dependencies 提供的依赖管理。相关文档请参考:
https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/htmlsingle/#running-your-application

① 创建工程

如下所示,首先使用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.8targetCompatibility = 1.8compileJava.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'//支持apidependencies {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'//支持apidependencies {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'}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/161016.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSAPP BOMB LAB part3

CSAPP BOMB LAB part3 phase_4 bomb.s phase_4的代码: 格式: 40102e行,比较0x8rsp的值和0xe, 需要让0x8rsp小于0xe, 然后跳转到40103a, func函数根据bomb.s 转化为c代码: 这个直接参考了知乎网友的翻译, func4的返回值等于0, 跳转到40…

【SpringSecurity】简介

SpringSecurity简介 Spring Security 的前身是Acegi Security,在被收纳为Spring 子项目后正式更名为Spring Security。Spring Security目前已经到了6.x,并且加入了原生OAuth2.0框架,支持更加现代化的密码加密方式。可以预见,在Ja…

翻页电子杂志制作功略,快收藏,保管好用!

翻页电子杂志,我相信这对大家很熟悉吧,大家也都经常看电子杂志吧。它和我们的生活紧密相关,也极大地改变了我们的阅读方式。听到这“翻页电子杂志”,是不是觉得制作起来肯定很难很复杂,需要专业的人才能制作呢&#xf…

第 370 周赛 100112. 平衡子序列的最大和(困难,离散化,权值树状数组)

太难了,看答案理解了半天 题目的要求可以理解为 nums[ij] - ij > nums[ii] - ii ,所以问题化为求序列 bi nums[i] - i 的非递减子序列的最大元素和需要前置知识,离散化,树状数组离散化:将分布大却数量少(即稀疏)的…

0X02

web9 阐释一波密码&#xff0c;依然没有什么 发现&#xff0c;要不扫一下&#xff0c;或者看一看可不可以去爆破密码 就先扫了看看&#xff0c;发现robots.txt 访问看看,出现不允许被访问的目录 还是继续尝试访问看看 就可以下载源码&#xff0c;看看源码 <?php $fl…

旅游业为什么要选择VR全景,VR全景在景区旅游上有哪些应用

引言&#xff1a; VR全景技术的引入为旅游业带来了一场变革。这项先进技术不仅提供了前所未有的互动体验&#xff0c;还为景区旅游文化注入了新的生机。 一&#xff0e;VR全景技术&#xff1a;革新旅游体验 1.什么是VR全景技术&#xff1f; VR全景技术是一种虚拟现实技术&am…

第12章_MySQL数据类型精讲

文章目录 1 MySQL中的数据类型2 整数类型2.1 类型介绍2.2 可选属性2.2.1 M2.2.2 UNSIGNED2.2.3 ZEROFILL 2.3 适用场景2.4 如何选择演示代码 3 浮点类型3.1 类型介绍 本章的内容测试建议使用 MySQL5.7进行测试。3.2 数据精度说明3.3 精度误差说明 4 定点数类型4.1 类型介绍4.2 …

ZZ038 物联网应用与服务赛题第D套

2023年全国职业院校技能大赛 中职组 物联网应用与服务 任 务 书 (D卷) 赛位号:______________ 竞赛须知 一、注意事项 1.检查硬件设备、电脑设备是否正常。检查竞赛所需的各项设备、软件和竞赛材料等; 2.竞赛任务中所使用的各类软件工具、软件安装文件等,都…

1、Flink基础概念

1、基础知识 &#xff08;1&#xff09;、数据流上的有状态计算 &#xff08;2&#xff09;、框架和分布式处理引擎&#xff0c;用于对无界和有界数据流进行有状态计算。 &#xff08;3&#xff09;、事件驱动型应用&#xff0c;有数据流就进行处理&#xff0c;无数据流就不…

Android MVI架构的深入解析与对比

什么是MVI&#xff1f; M&#xff1a;model&#xff0c;此处的model并不是传统的数据模块&#xff0c;它是指用来存储视图状态UI State的一个模块 。比如请求数据时的loading、请求失败的提示页面等UI层面的变化状态。 V&#xff1a;view&#xff0c;视图模块 I&#xff1a;…

MongoDB设置密码

关于为什么要设置密码 公司的测试服务器MongoDB服务对外网开放的&#xff0c;结果这几天发现数据库被每天晚上被人清空的了&#xff0c;还新建了个数据库&#xff0c;说是要支付比特币。查了日志看到有个境外的IP登录且删除了所有的集合。所以为了安全起见&#xff0c;我们给m…

【JVM系列】- 挖掘·JVM堆内存结构

挖掘JVM堆内存结构 文章目录 挖掘JVM堆内存结构堆的核心概念堆的特点 堆的内存结构内存划分新生代/新生区&#xff08;Young Generation&#xff09;老年代&#xff08;Tenured Generation&#xff09;永久代&#xff08;或元数据区&#xff09;&#xff08;PermGen 或 MetaSpa…