欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解IDEA下Gradle多模塊(項目)的構(gòu)建

 更新時間:2019年01月27日 10:37:27   作者:小馬哥  
這篇文章主要介紹了詳解IDEA下Gradle多模塊(項目)的構(gòu)建,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

我們在新起一個項目的時候,一般都會建多個子項目(IDEA里面稱之為Module模塊)。通過Gradle構(gòu)建,多個Module之間需要將公用的配置抽取到全局,子項目中只寫差異化的配置,以便于維護。

多模塊項目的Gradle目錄結(jié)構(gòu)

示例:我的示例項目demo,我需要有一個common模塊用于公用代碼,一個rest模塊用于提供rest接口,rest依賴common,如果用gradle構(gòu)建,目錄樹會是這樣:

demo
├── build.gradle   -- 全局配置
├── settings.gradle  -- 全局配置
├── common      -- 子模塊1目錄
│  └── build.gradle -- 子模塊1配置
├── rest       -- 子模塊2配置
│  └── build.gradle -- 子模塊2配置
...

IDEA下初始創(chuàng)建root目錄結(jié)構(gòu)

A. IDEA本地創(chuàng)建項目并定義項目名

如果是通過IDEA新建一個本地項目,可按照如下步驟先創(chuàng)建root項目:

1、File -> New -> Project: 選擇Gradle->Java

2、Next, 填寫GroupId和ArtifactId:

GroupId: 如com.diboot
ArtifactId:如demo

3、Next, 指定Gradle home和JVM等

4、Next, 選擇項目存放路徑。完成之后IDEA會創(chuàng)建相關文件

接下來如果你需要將本地新項目代碼上傳到代碼倉庫,可以通過VCS菜單導入:

B. 基于代碼倉庫指定的項目名創(chuàng)建root項目

而如果項目名已經(jīng)在倉庫中定義,你需要基于倉庫名初始項目的gradle配置,則項目的初始創(chuàng)建是通過VCS導入,然后用命令行初始化gradle:

  1. File -> New -> Project from Version Control -> ...
  2. 切換到Terminal命令行,輸入 gradle init,按照操作提示進行root項目的初始化。

創(chuàng)建子模塊/項目

在根目錄demo文件夾右鍵選擇 New -> Module -> Gradle -> Java, 指定子模塊ArtifactId名稱,依次添加common模塊和rest模塊后,gradle相關的目錄結(jié)構(gòu)就跟我們期望的一致了。

全局gradle配置

在demo根目錄下:

settings.gradle中的結(jié)構(gòu)定義如下

rootProject.name = 'demo'
include 'common'
include 'rest'

build.gradle中可以定義全局公用的構(gòu)建配置,以Spring Boot項目配置示例:

buildscript {
  ext {
    springBootVersion = '2.1.2.RELEASE'
  }
  repositories {
    maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
  }
  dependencies {
    classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
  }
}
// 所有模塊/項目的通用配置
allprojects {
  group 'com.diboot'
  version '1.0-SNAPSHOT'
  apply plugin: 'idea'
}
// 子模塊/項目的統(tǒng)一配置
subprojects {
  apply plugin: 'java'
  // 指定JDK版本
  sourceCompatibility = 1.8
  targetCompatibility = 1.8
  // 指定編碼格式
  [compileJava,compileTestJava,javadoc]*.options*.encoding = 'UTF-8'
  repositories {
    maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
  }
  ext {//依賴版本
    springBootVersion = "2.1.2.RELEASE"
    mysqlConnectorVersion = "8.0.13"
    mybatisStarterVersion = "1.3.2"
    fastjsonVersion = "1.2.54"
  }
  dependencies {
    compile("javax.servlet:javax.servlet-api:4.0.1")
    compile("org.springframework.boot:spring-boot-starter-web:$springBootVersion")
    // Mybatis
    compile("org.mybatis.spring.boot:mybatis-spring-boot-starter:$mybatisStarterVersion")
    // Log4j2
    compile("org.springframework.boot:spring-boot-starter-log4j2:$springBootVersion")
    // JDBC Driver
    compile("mysql:mysql-connector-java:$mysqlConnectorVersion")
    // JSON
    compile("com.alibaba:fastjson:$fastjsonVersion")
    // Apache Commons
    compile("org.apache.commons:commons-lang3:3.8.1")
    
    // 單元測試
    testCompile("org.springframework.boot:spring-boot-starter-test:$springBootVersion")
    testCompile("junit:junit:4.12")
  }
  configurations {
    //移除spring boot 默認logger依賴
    all*.exclude module: 'spring-boot-starter-logging'
  }
}

子模塊/項目gradle配置

通用的依賴配置可以在根目錄下的build.gradle中,子模塊/項目僅配置差異化的部分即可,如子項目特定的依賴。
common下的build.gradle示例:

dependencies {
  // 配置該項目特有的依賴
}

rest下的build.gradle示例(rest項目依賴common項目):

dependencies {
  // 依賴common項目
  compile project(":common")
  // 配置該項目特有的依賴
}

代碼參考:Diboot-v2初始項目

Gradle官方相關文章:
Gradle多項目構(gòu)建介紹
Gradle多項目構(gòu)建

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Spring MVC 4.1.3 + MyBatis零基礎搭建Web開發(fā)框架(注解模式)

    Spring MVC 4.1.3 + MyBatis零基礎搭建Web開發(fā)框架(注解模式)

    本篇文章主要介紹了Spring MVC 4.1.3 + MyBatis零基礎搭建Web開發(fā)框架(注解模式),具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • springboot中使用@Transactional注解事物不生效的坑

    springboot中使用@Transactional注解事物不生效的坑

    這篇文章主要介紹了springboot中使用@Transactional注解事物不生效的原因,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Java線程之間的共享與協(xié)作詳解

    Java線程之間的共享與協(xié)作詳解

    這篇文章主要介紹了Java線程之間的共享與協(xié)作詳解,進程是操作系統(tǒng)進行資源分配的最小單位,線程是進程的一個實體,是CPU調(diào)度和分派的基本單位,它是比經(jīng)常更小的、能夠獨立運行的基本單位
    2022-07-07
  • SpringBoot整合neo4j使用詳解

    SpringBoot整合neo4j使用詳解

    這篇文章將和大家詳細聊聊如何在springboot應用中集成和使用neo4j,文中有詳細的實現(xiàn)流程和實例代碼,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-10-10
  • Java中消息隊列任務的平滑關閉詳解

    Java中消息隊列任務的平滑關閉詳解

    對于消息隊列的監(jiān)聽,我們一般使用Java寫一個獨立的程序,在Linux服務器上運行。程序啟動后,通過消息隊列客戶端接收消息,放入一個線程池進行異步處理,并發(fā)的快速處理。這篇文章主要給大家介紹了關于Java中消息隊列任務的平滑關閉的相關資料,需要的朋友可以參考下。
    2017-11-11
  • springBoot項目打包idea的多種方法

    springBoot項目打包idea的多種方法

    這篇文章主要介紹了springBoot項目打包idea的多種方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • SpringBoot和Swagger結(jié)合提高API開發(fā)效率

    SpringBoot和Swagger結(jié)合提高API開發(fā)效率

    這篇文章主要介紹了SpringBoot和Swagger結(jié)合提高API開發(fā)效率的相關資料,需要的朋友可以參考下
    2017-09-09
  • 淺析Java中SimpleDateFormat為什么是線程不安全的

    淺析Java中SimpleDateFormat為什么是線程不安全的

    SimpleDateFormat是Java中用于日期時間格式化的一個類,它提供了對日期的解析和格式化能力,本文主要來和大家一起探討一下SimpleDateFormat為什么是線程不安全的,感興趣的可以了解下
    2024-02-02
  • 淺談springboot多模塊(modules)開發(fā)

    淺談springboot多模塊(modules)開發(fā)

    這篇文章主要介紹了淺談springboot多模塊(modules)開發(fā),詳細的介紹了springboot多模塊的實現(xiàn),有興趣的可以了解一下
    2017-09-09
  • SpringBoot高版本修改為低版本時測試類報錯的解決方案

    SpringBoot高版本修改為低版本時測試類報錯的解決方案

    這篇文章主要介紹了SpringBoot高版本修改為低版本時測試類報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評論