激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日性 | 蜜桃精品视频 | 国产精品久久久久久久久岛 | 成年人毛片视频 | 黄色一级片在线观看 | 成人偷拍片视频在线观看 | 一级毛片在线观看免费 | 久久久久久久久久久国产精品 | 欧美精品一区二区三区久久久 | 日本在线不卡一区二区三区 | 成人免费一区 | 日韩av电影在线观看 | 操碰视频在线观看 | 成人在线视频一区 | 久草视频在线资源 | 欧美视频国产精品 | av成人一区二区 | 免费a观看| 爱操av | 久久久综合久久久 | 中文字幕在线资源 | 欧洲黄色一级视频 | 久草视频在线资源 | 国产午夜精品久久久久 | 久色成人网 | 免费观看的毛片手机视频 | 操操影视 | 欧美大穴 | 一级一片免费 | 91精品国产91久久久久久丝袜 | 成年人国产视频 | 中国黄色一级生活片 | 日韩精品一区不卡 | 久久精品无码一区二区三区 | 91网视频在线观看 | 日韩视频一区二区在线观看 | 久久国产一 | 亚洲va久久久噜噜噜久牛牛影视 | 日本不卡一区二区三区在线观看 | 欧美一级特黄aaaaaa在线看首页 | 欧美性生活久久 |