New -> Project,在其中找到 Spring Initializr,創建一個全新的 demo 項目,創建成功后結構如下: 之后,程序會自動下載 Gradle 安裝包,并且通過 Gradle 下載和引入的 jar 包。由于默認使用的鏡像速" />

色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Gradle構建的多模塊Spring Boot項目

科技綠洲 ? 來源:Java技術指北 ? 作者:Java技術指北 ? 2023-09-25 14:46 ? 次閱讀

0. 前言

相比起 Maven 的 XML 配置方式,Gradle 提供了一套簡明的 DSL 用于構建Java 項目,使我們就像編寫程序一樣編寫項目構建腳本。

本文將從無到有創建一個用 Gradle 構建的多模塊 Spring Boot 項目,JDK 版本為8,IDEA 版本為 2022.3.1 。

1. 創建項目

打開IDEA,選擇菜單:File -> New -> Project,在其中找到 Spring Initializr,創建一個全新的 demo 項目,創建成功后結構如下:

圖片

之后,程序會自動下載 Gradle 安裝包,并且通過 Gradle 下載和引入的 jar 包。由于默認使用的鏡像速度較慢,我們可以先取消下載,等后面配置好國內鏡像后再重新下載,當然也可以慢慢等。

2. Gradle說明

在這里就不介紹Gradle 的優缺點了,只說一下本項目涉及的部分:

  • build.gradle :管理依賴包的配置文件(相當于Maven的pom.xml)。
  • gradlew :Gradle 命令的包裝,當機器上沒有安裝 Gradle 時,可以直接用 gradlew 命令來構建項目。
  • settings.gradle :可以視為多模塊項目的總目錄, Gradle 通過它來構建各個模塊,并組織模塊間的關系。
  • gradle/wrapper包 :Gradle 的一層包裝,能夠讓機器在不安裝 Gradle 的情況下運行程序,便于在團隊開發過程中統一 Gradle 構建的版本, 推薦使用
  • gradle.properties :需手動創建,配置gradle環境變量,或配置自定義變量供 build.gradle 使用。

3. Gradle最佳實踐

接下來,講一下我個人使用 Gradle 的一些經驗。

  1. 修改 gradle-wrapper.properties 中的 Gradle 下載鏡像改為國內鏡像。

圖片

  1. 新建 gradle.properties 文件,配置 Gradle 參數,提升構建速度。

圖片

  1. 將 maven 倉庫地址改為國內地址
  2. 將經常變更的依賴包版本、 maven 庫地址等變量提取到 gradle.properties 里, build.gradle 可直接讀取使用。

圖片

  1. 使用 buildscript 方式引用 gradle plugins ,優點是可以使用自定義倉庫,且便于子模塊繼承。

圖片

  1. 新建 spring.gradle 配置文件,引用相關的 Spring 依賴包。

圖片

  1. 在 build.gradle 里添加引用本地jar包的語句,這樣配置后,倉庫中沒有的jar包,放到 src/libs 文件夾下就可以直接使用了,非常方便。

圖片圖片

  1. 在 build.gradle 中添加一個拷貝 jar 包的 task ,在 build 或 bootJar 后執行,用于將子模塊打包后,拷貝到根目錄下。

圖片

4. 項目模塊劃分

4.1. 拆分思路

新項目默認是一個單模塊的 SpringBoot 工程,而我們要將其改造為一個多模塊項目,思路是,將項目拆分為多個子模塊,分為三類: 服務、模塊、組件

  1. 項目 :最頂級,與服務是一對多的關系,本項目為根目錄;
  2. 服務 :對應一個可啟動的 SpringBoot 工程,一般只有一個啟動類,建議根據服務器資源和團隊規模劃分,與模塊是一對多的關系,位置在 services 包下;
  3. 模塊 :對應一個完整的業務,模塊間邊界清晰,將不同的業務解耦,便于擴展和維護,位置在 modules 包下;
  4. 組件 :將公用的代碼部分提取為一個個組件,供不同的模塊調用,與模塊是多對多的關系,位置在 components 包下。

4.2. 拆分實踐

  1. 服務 :創建一個示例服務:demo-boot
  2. 模塊 :只是個框架,沒有承載業務,象征性的建一個系統管理模塊:demo-system ,任何系統都能用到;
  3. 組件 :建一個放工具類的組件:demo-common ,所有模塊都會用到。

4.3. 具體配置

  1. 聲明子模塊 :在根目錄下的 settings.gradle 里聲明各個模塊:

圖片

  1. 服務公共依賴 :在 services/build.gradle 里引用一些所有服務公用的一些依賴包,這里使用了 subprojects,表示應用于所有 services 包下的子模塊,我們通過 sourceSet 的方式將根目錄 src 下的文件,作為公共代碼集成到每個服務中。

圖片

  1. 服務包含模塊 :在 services/demo-boot/build.gradle 里引用模塊 demo-system

圖片

  1. 模塊公共依賴 :在 modules/build.gradle 里引用一些所有模塊公用的一些依賴包,這里我們引用本地 src/libs 文件夾下的本地jar包。

圖片

  1. 模塊包含組件 :在 modules/demo-system/build.gradle 里引用組件 demo-common

圖片

4.4. 代碼結構

每次修改 Gradle 配置后,需要刷新生效(可改為自動)

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 模塊
    +關注

    關注

    7

    文章

    2695

    瀏覽量

    47431
  • JAVA
    +關注

    關注

    19

    文章

    2966

    瀏覽量

    104702
  • 程序
    +關注

    關注

    117

    文章

    3785

    瀏覽量

    81003
  • spring
    +關注

    關注

    0

    文章

    340

    瀏覽量

    14338
  • gradle
    +關注

    關注

    0

    文章

    26

    瀏覽量

    708
收藏 人收藏

    評論

    相關推薦

    Spring Boot中Docker的入門指南(一)

    許多人使用容器來包裝他們的 Spring Boot 應用程序,而構建容器并不是一件簡單的事情。這是針對 Spring Boot 應用程序開發
    的頭像 發表于 06-28 15:54 ?2669次閱讀

    Spring Boot如何實現異步任務

    Spring Boot 提供了多種方式來實現異步任務,這里介紹三種主要實現方式。 1、基于注解 @Async @Async 注解是 Spring 提供的一種輕量級異步方法實現方式,它可以標記在方法上
    的頭像 發表于 09-30 10:32 ?1436次閱讀

    Spring Boot Starter需要些什么

    pulsar-spring-boot-starter是非常有必要的,在此之前,我們先看看一個starter需要些什么。 Spring Boot Starter spring-boot
    的頭像 發表于 09-25 11:35 ?756次閱讀
    <b class='flag-5'>Spring</b> <b class='flag-5'>Boot</b> Starter需要些什么

    啟動Spring Boot項目應用的三種方法

    的讀取,開啟注解4)配置日志文件...配置完成之后部署tomcat 調試。但是如果使用spring boot呢?很簡單,我僅僅只需要非常少的幾個配置就可以迅速方便的搭建起來一套web項目或者是
    發表于 01-14 17:33

    Spring Boot嵌入式Web容器原理是什么

    Spring Boot嵌入式Web容器原理Spring Boot的目標是構建“非常容易創建、獨立、產品級別的基于
    發表于 12-16 07:57

    Spring Boot從零入門1 詳述

    在開始學習Spring Boot之前,我之前從未接觸過Spring相關的項目,Java基礎還是幾年前自學的,現在估計也忘得差不多了吧,寫Spring
    的頭像 發表于 12-10 22:18 ?632次閱讀

    Spring認證」什么是Spring GraphQL?

    這個項目建立在 Boot 2.x 上,但它應該與最新的 Boot2.4.x5 相關。 要創建項目,請轉到start.spring.io并為要
    的頭像 發表于 08-10 14:08 ?814次閱讀
    「<b class='flag-5'>Spring</b>認證」什么是<b class='flag-5'>Spring</b> GraphQL?

    Spring Boot特有的實踐

    Spring Boot是最流行的用于開發微服務的Java框架。在本文中,我將與你分享自2016年以來我在專業開發中使用Spring Boot所采用的最佳實踐。這些內容是基于我的個人經驗
    的頭像 發表于 09-29 10:24 ?901次閱讀

    強大的Spring Boot 3.0要來了

    和 Bugfix。 Spring Boot 3.0 的開發工作始于實驗性的 Spring Native,旨在為 GraalVM 原生鏡像提供支持。 在該版本中,開發者現在可以使用標準 Spri
    的頭像 發表于 10-31 11:17 ?1857次閱讀

    怎樣使用Kiuwan保護Spring Boot應用程序呢?

    Spring Boot 提供了快速輕松地構建基于Spring 的應用程序所需的工具、功能和依賴項。
    的頭像 發表于 03-16 09:10 ?781次閱讀

    Spring Boot Web相關的基礎知識

    上一篇文章我們已經學會了如何通過IDEA快速建立一個Spring Boot項目,還介紹了Spring Boot
    的頭像 發表于 03-17 15:03 ?649次閱讀

    Spring Boot Actuator快速入門

    不知道大家在寫 Spring Boot 項目的過程中,使用過 Spring Boot Actuator 嗎?知道
    的頭像 發表于 10-09 17:11 ?633次閱讀

    Spring Boot啟動 Eureka流程

    在上篇中已經說過了 Eureka-Server 本質上是一個 web 應用的項目,今天就來看看 Spring Boot 是怎么啟動 Eureka 的。 Spring
    的頭像 發表于 10-10 11:40 ?887次閱讀
    <b class='flag-5'>Spring</b> <b class='flag-5'>Boot</b>啟動 Eureka流程

    Spring Boot的啟動原理

    可能很多初學者會比較困惑,Spring Boot 是如何做到將應用代碼和所有的依賴打包成一個獨立的 Jar 包,因為傳統的 Java 項目打包成 Jar 包之后,需要通過 -classpath 屬性
    的頭像 發表于 10-13 11:44 ?643次閱讀
    <b class='flag-5'>Spring</b> <b class='flag-5'>Boot</b>的啟動原理

    Spring Boot 的設計目標

    什么是Spring Boot Spring BootSpring 開源組織下的一個子項目
    的頭像 發表于 10-13 14:56 ?580次閱讀
    <b class='flag-5'>Spring</b> <b class='flag-5'>Boot</b> 的設計目標
    主站蜘蛛池模板: 儿子日母亲B好爽| 俺也去最新地址| 欧美ⅹxxxx18性欧美| 男女生爽爽爽视频免费观看| 女人高潮时一吸一夹| 日本欧美午夜三级| 无修肉动漫在线观看影片| 亚洲欧美国产双大乳头| 久在线观看福利视频| 中字幕视频在线永久在线| 2021国产精品一卡2卡三卡4卡| 亚洲精品久久久久69影院| 影音先锋av男人资源| 伊人影院蕉久| black大战chinese周晓琳| 国产AV视频一区二区蜜桃| 俄罗斯17vidio| 国产一区二区三区影院| 国产亚洲精品久久久久久久软件 | 热99RE久久精品国产| 甜性涩爱dvd| 午夜福利92看看电影80| 一级大乳奶| 这里只有精品网| 早乙女由依在线观看| 伊人久久影视| 波多野结衣网站www| 国产在线一区观看| 欧美日本高清动作片www网站| 午夜国产福利| 91av影院| 成人毛片大全| 精品无码久久久久久久动漫| 久久怡红院国产精品| 三级网站午夜三级| 久久er国产精品免费观看2| 99香蕉视频| 国产人妻人伦精品836700| 好嗨哟在线看片免费| 久久ZYZ资源站无码中文动漫| 青青草原国产在线|