一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - Java教程 - 詳解IDEA下Gradle多模塊(項目)的構建

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

2021-07-12 15:14小馬哥 Java教程

這篇文章主要介紹了詳解IDEA下Gradle多模塊(項目)的構建,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

多模塊項目的gradle目錄結構

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

?
1
2
3
4
5
6
7
8
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中的結構定義如下

?
1
2
3
rootproject.name = 'demo'
include 'common'
include 'rest'

build.gradle中可以定義全局公用的構建配置,以spring boot項目配置示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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示例:

?
1
2
3
dependencies {
  // 配置該項目特有的依賴
}

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

?
1
2
3
4
5
dependencies {
  // 依賴common項目
  compile project(":common")
  // 配置該項目特有的依賴
}

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

gradle官方相關文章:
gradle多項目構建介紹
gradle多項目構建

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://segmentfault.com/a/1190000018028996

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成品人视频w免费观看w | 国产一区在线看 | 亚洲精品久久久久久婷婷 | 欧美日本一道高清免费3区 欧美人做人爱a全程免费 | 免费高清资源黄网站在线观看 | 亚洲欧美日韩高清 | 日本性漫画 | 日本午夜vr影院新入口 | 91精品综合 | 热99这里有精品综合久久 | 四虎1515hh.com| 日韩免费一级片 | 富士av105 | 美女被草出水 | 91精品国产高清久久久久久io | 国产全部理论片线观看 | 鸥美三级 | 国产成人+亚洲欧洲 | 免费国产午夜高清在线视频 | 青青青青青 | 亚洲免费视频一区 | 日本一区二区三区在线 观看网站 | 国产在线视频色综合 | 九九在线免费视频 | 日本videossexx日本人 | 免费国产午夜高清在线视频 | 日韩在线观看一区二区不卡视频 | 1024视频色版在线网站 | 超级碰碰免费视频 | 亚洲午夜久久久久久91 | 欧美高清在线 | 香蕉eeww99国产在线观看 | 成人影院在线看 | 国色天香社区视频免费高清在线观看 | 精品湿 | 日韩视频在线免费观看 | 色妞视频一级毛片 | 俄罗斯极品h在线 | 国产91页| 欧美男女爱爱视频 | luanlun绝对真实乱 |