中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

IDEA下如何實現Gradle多模塊

發布時間:2021-08-13 09:06:41 來源:億速云 閱讀:540 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“IDEA下如何實現Gradle多模塊”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“IDEA下如何實現Gradle多模塊”這篇文章吧。

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

多模塊項目的Gradle目錄結構

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

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

IDEA下初始創建root目錄結構

A. IDEA本地創建項目并定義項目名

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

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

IDEA下如何實現Gradle多模塊

2、Next, 填寫GroupId和ArtifactId:

GroupId: 如com.diboot
ArtifactId:如demo

3、Next, 指定Gradle home和JVM等

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

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

IDEA下如何實現Gradle多模塊

B. 基于代碼倉庫指定的項目名創建root項目

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

  1. File -> New -> Project from Version Control -> ...

  2. 切換到Terminal命令行,輸入 gradle init,按照操作提示進行root項目的初始化。

創建子模塊/項目

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

全局gradle配置

在demo根目錄下:

settings.gradle中的結構定義如下

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

build.gradle中可以定義全局公用的構建配置,以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'
}
// 子模塊/項目的統一配置
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")
  // 配置該項目特有的依賴
}

以上是“IDEA下如何實現Gradle多模塊”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

太仆寺旗| 荣昌县| 和林格尔县| 阿拉善盟| 大厂| 临澧县| 法库县| 离岛区| 辰溪县| 鄂伦春自治旗| 沙河市| 青铜峡市| 南安市| 青川县| 满洲里市| 綦江县| 繁峙县| 乐安县| 雅安市| 富平县| 昭通市| 大同县| 隆尧县| 涿鹿县| 油尖旺区| 喀什市| 昭平县| 牡丹江市| 寻乌县| 兴隆县| 炉霍县| 灌阳县| 太仆寺旗| 巴塘县| 虎林市| 勐海县| 犍为县| 墨江| 井冈山市| 安西县| 鄄城县|