Gradle构建SpringBoot单模块项目

这篇具有很好参考价值的文章主要介绍了Gradle构建SpringBoot单模块项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Gradle构建SpringBoot单模块项目

  • 方式Ⅰ:未基于:Gradle Wrapper
  • 方式Ⅱ:(推荐使用)Gradle Wrapper【可以不安装Gradle、统一Gradle的版本】——包括Maven也是一样的可以用Wrapper的方式
  • 版本:JDK8 + SpringBoot2.7.15 + Gradle8.x
  • 本篇主要讲实现。Gradle与Maven的区别自己去看

Ⅰ、普通方式(基础)

  • 别用这种方式,gradle的版本也低

一、需要先安装Gradle

  • 需要配置Gradle的环境变量,如同Maven

  • 自己搜,也许后面我会出

二、构建项目、导包

1、build.gradle -构建配置+导包
  • 主要插件:'io.spring.dependency-management' (Gradle 5.x 之前版本)

    • dependency-management会做自动做一件核心事情:spring boot grale插件会自动调用dependency-management引入org.springframework.boot:spring-boot-dependencies:SPRING_BOOT_VERSION
      • 其中SPRING_BOOT_VERSION也是spring boot gradle插件的版本,spring-boot-dependencies中维护了spring boot生态下的bom数据。
    • Gradle 5.x开始自动提供bom功能,因此可以不用引入spring 的dependency management插件,直接导包
  • 主要插件:'org.springframework.boot'

//以下两种构件方式都可以
// 构建方式一:
/*buildscript {
    repositories {
        mavenLocal()
        maven { url 'https://maven.aliyun.com/repository/public/' }
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.5.RELEASE")
    }
}
apply plugin: 'java'    //gradle创建的java项目
apply plugin: 'idea'    //idea插件:生成IDE工程文件,然后在IDE中直接打开这样的工程文件。这样的好处一是非常简单,二是所有人都使用了相同的IDE配置。
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management' //类似 Maven的 dependencyManagement方式实现依赖管理 的插件*/

// 构建方式二:
plugins{
    id 'java'
    id 'idea'
    id 'org.springframework.boot' version '2.0.5.RELEASE'
    id 'io.spring.dependency-management' version "1.0.8.RELEASE"
}

//组、版本、jdk版本
group = 'com.zdhb'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
targetCompatibility = 1.8

//仓库配置
repositories {
    mavenLocal() //本地
    maven { url 'https://maven.aliyun.com/repository/public/' } //阿里镜像
    mavenCentral()  //中央仓库
}

//导包
dependencies {
    compile"org.springframework.boot:spring-boot-starter-web"
    testCompile("org.springframework.boot:spring-boot-starter-test")
    
//    compile "com.baomidou:mybatis-plus:2.2.0"
    compile "com.microsoft.sqlserver:sqljdbc4:4.0"
    compile "org.apache.velocity:velocity-engine-core:2.0"
    compile "com.alibaba:druid:1.1.11"
    //hutool工具类
    compile "cn.hutool:hutool-all:5.0.7"
    //lombok
    compile "org.projectlombok:lombok:1.18.16"
    //处理 JSON 数据包
    compile "com.alibaba:fastjson:1.2.49"
    compile "org.apache.commons:commons-lang3:3.5"
    //compile "org.springframework:spring-web:5.0.9.RELEASE"
//    compile "io.swagger:swagger-annotations:1.5.20"
    compile "com.baomidou:mybatis-plus-boot-starter:2.2.0"
}
2、application.yml -配置文件
server:
  port: 9004

配置数据库和mybatis plus后

server:
  port: 9004
spring:
  #  连接池配置
  datasource:
    url: jdbc:sqlserver://***:1433;database=site_card_input  #zd_gms_cd数据库名 配置时间区
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver  #数据库驱动
    username: sa
    password: ****
    type: com.alibaba.druid.pool.DruidDataSource  #使用druid连接池
  #时间戳统一转换
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8

#  配置 mybatis-plus
mybatis-plus:
  mapper-locations: classpath:com/****/sacs/mapper/*Mapper.xml   #扫描xml文件
  type-aliases-package: com.****.sacs.dto,com.zdhb.sacs.query  #配置别名

3、启动类
  • 记得扫描Mapper的组件 @MapperScan("com.zdhb.sacs.mapper")
@SpringBootApplication
@MapperScan("com.zdhb.sacs.mapper")
public class SiteAndCradServersApplication9004 {

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

}
4、配置成功的标志,Gradle构建成功

Gradle构建SpringBoot单模块项目

Ⅱ、单模块项目

  • JDK8的最终版

  • 其实jdk8+springboot的最终版是:2.7.16-SNAPSHOT。只是我导不进来,所以用了:2.7.15

  • Gradle Wapper:用于统一项目所使用的gradle版本,不用安装Gradle

  • 直接使用idea构建gradle项目

  • springboot+jdk+gradle的版本:来自spring管网

https://docs.spring.io/spring-boot/docs/2.7.15/reference/html/getting-started.html#getting-started

Gradle构建SpringBoot单模块项目

一、说明

1、idea自己去新建Gradle的SpringBoot项目

Gradle构建SpringBoot单模块项目

2、compile导包方式被弃用

  • 使用:implementation、api导包
在Gradle 8.x及以上的版本中,compile配置已被弃用,并且被以下两个配置所取代:

1. implementation:用于指定项目的主要依赖项,这些依赖项将被编译和打包到项目中。这是替代compile配置的推荐选项。
【关键词:被编译和打包、推荐选项、不共享到其他模块】
【重点:依赖无法被传递给子模块】

2. api:用于指定项目的公共API依赖项,这些依赖项将被编译、打包到项目中,并且对其他模块可见。这是替代compile配置的另一个选项,适用于需要在多个模块之间共享依赖项的情况。
【关键词:被编译和打包、公共依赖其他模块可见、多模块共享依赖】
【重点:依赖可以被传递给子模块】

二、gradle配置

  • 可以不用管
  • gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

三、项目配置

1、build.gradle

  • 作用如同Maven的pom文件
  • 配置springboot的版本,导包,配置仓库地址等等……
plugins {
    id 'java'
    id 'org.springframework.boot' version '2.7.15'
    id 'io.spring.dependency-management' version '1.0.15.RELEASE'
}

group = 'com.cc'
version = '0.0.1-SNAPSHOT'

java {
    sourceCompatibility = '8'
    targetCompatibility = '8'
}

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

//仓库配置
repositories {
    //本地
    mavenLocal()
    //阿里仓库
    maven { url 'https://maven.aliyun.com/repository/public/' }
    //公司仓库。必须用:https。Gradle默认情况下不允许使用不安全的协议,以提高安全性。
    maven { url 'https://****:****/repository/maven-public/' }
    //中央仓库
    mavenCentral()
}

//导包
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

//用于配置测试任务(test task)
tasks.named('test') {
    //是一个测试任务的配置方法,它指定使用JUnit 5平台来运行测试
    //通过使用useJUnitPlatform()配置方法,您可以确保您的测试任务使用JUnit 5来运行测试。
    useJUnitPlatform()
}

// 配置gradle的版本。需要单独运行
wrapper {
    //gradle的版本
    gradleVersion = '8.4'
    //版本类型:BIN、ALL(完全版,可以看gradle的代码)
    distributionType = 'ALL'
}

2、settings.gradle

  • 可以实现多模块配置,这里先不演示
rootProject.name = 'JavaPatterns'

3、SpringBoot配置文件、启动类见【Ⅰ、二】

Ⅲ、多模块项目

  • 见第二篇我的文章:https://www.cnblogs.com/kakarotto-chen/p/17784126.html

  • 参考:https://www.cnblogs.com/davenkin/p/gradle-spring-boot.html文章来源地址https://www.toymoban.com/news/detail-711221.html

到了这里,关于Gradle构建SpringBoot单模块项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jenkins怎么配置Gradle只构建子项目,而不构建父项目,Jenkins配置gradle详细介绍

            Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。 在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试

    2024年02月03日
    浏览(39)
  • Android使用Gradle kotlin dsl 优雅配置构建项目

    Gradle的出现可以说是为Android的项目构建插上了翅膀,让Android的apk打包构建更简单高效。开发者可以自己去定义打包的过程,比如在打包的过程中进行字节码插桩,多渠道打包,在老版本的Android中还可以依赖Gradle实现APP的插件化开发。但是Gradle是使用Groovy语言开发的,虽然说

    2024年02月13日
    浏览(50)
  • Android Studio或IntelliJ IDEA 构建Gradle项目时,gradle下载时连接超时问题

    用IntelliJ IDEA 创建一个Gradle项目,下载gradle时显示连接超时。 问题如下 : 在项目根目录的gradle目录下,gradle-wrapper.properties文件定义了用于构建项目的gradle工具的下载地址 services.gradle.org 。由于该网站的服务器在国外,所以在国内访问可能存在连接超时问题,访问不到。 笔者

    2024年02月04日
    浏览(62)
  • cocos构建 Android 项目Android studio gradle 8.0 报错

    记录一下踩坑 今天用cocos构建 了一个Android 项目 然后用Android studio 打开 TestProject_Helloworldbuildandroidproj 项目, 由于我的Android studio 用的是jdk17, 所以提示要升级gradle 插件版本,所以我升级成了gradle 8.0 . 但是编译的时候报错 Namespace not specified. Please specify a namespace in the modu

    2024年02月16日
    浏览(105)
  • IDEA用Gradle构建项目时,lombok插件无效的解决办法

    Lombok 可用来帮助开发人员消除 Java 的重复代码,尤其是对于简单的 Java 对象(POJO),比如说getter/setter/toString等方法的编写。它通过注解实现这一目的。 正确使用姿势 一、安装Lombok插件 菜单栏File - Settings - Plugins,在中间Marketplace下面输入Lombok搜索后进行安装,安装后会提

    2024年02月14日
    浏览(42)
  • ReactNative项目构建分析与思考之native_modules.gradle

    上一篇文章分析完 react-native-gradle-plugin 后,我们知道了react-native-gradle-plugin 主要是对依赖环境,以及RN的依赖版本进行管理。 本篇文章来接着分析 native_modules.gradle 这个脚本,这个脚本是React Native构建中比较重要的一个角色。 这是一个源码形式的脚本文件,虽然只有一个文件

    2024年03月20日
    浏览(38)
  • gradle+springboot实现多项目分环境打包

    上面的文件中,控制环境变量的代码块是 环境变量在bootstrap.ym中 打包命令 执行结果截图 -x test 是排除单元测试 -Pprofile=dev是传递环境参数 打包完成后,bootstrap.yml中的变量会替换为dev 下一篇 打包时,外部依赖的jar,不打进jar包里

    2024年02月02日
    浏览(39)
  • 记本地新建一个gradle方式springboot项目过程

    打算使用gradle在idea新建个springboot项目,然后坑很多,记录一下 原来我的idea应该是社区版,新建项目时候没有可以选择spring相关配置,然后卸载了重装,之前问题是启动是启动起来了,但是状态栏那边一直显示编译中,一直找不到具体原因,所以卸载和重装了。 接下来就是

    2024年02月10日
    浏览(34)
  • 使用Gradle7.6.1 + SpringBoot3.0.2 + java17创建微服务项目(学习)

    这是一个大胆的决定 技术 版本 spring-boot 3.0.2 spring-cloud 2022.0.2 spring-cloud-alibaba 2022.0.0.0-RC2 mybatis-plus-boot-starter 3.5.3.1 mysql-connector-java 8.0.32 技术 版本 java 17 gradle 7.6.1 IDEA 2022.2.4 Nvcat 15 MySQL 8.0.32 打开IDEA创建 SpringBoot项目 删除父项目中的src模块 新建两个子项目(新建时会重新创建

    2024年02月06日
    浏览(88)
  • C++集群聊天服务器 网络模块+业务模块+CMake构建项目 笔记 (上)

    跟着施磊老师做C++项目,施磊老师_腾讯课堂 (qq.com) 一、网络模块ChatServer chatserver.hpp chatserver.cpp json 里边会包含一个 msgid .由于客户端和服务器通信收发消息,需要判断这个消息是属于哪种业务的,就需要一个业务的标识,所以就用 msgid 来表示业务的标识.在 onMessage 函数中,并不想

    2024年02月20日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包