這篇文章主要為大家展示了“IDEA下如何實(shí)現(xiàn)Gradle多模塊”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“IDEA下如何實(shí)現(xiàn)Gradle多模塊”這篇文章吧。
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供彭州網(wǎng)站建設(shè)、彭州做網(wǎng)站、彭州網(wǎng)站設(shè)計(jì)、彭州網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、彭州企業(yè)網(wǎng)站模板建站服務(wù),10多年彭州做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
我們?cè)谛缕鹨粋€(gè)項(xiàng)目的時(shí)候,一般都會(huì)建多個(gè)子項(xiàng)目(IDEA里面稱之為Module模塊)。通過Gradle構(gòu)建,多個(gè)Module之間需要將公用的配置抽取到全局,子項(xiàng)目中只寫差異化的配置,以便于維護(hù)。
多模塊項(xiàng)目的Gradle目錄結(jié)構(gòu)
示例:我的示例項(xiàng)目demo,我需要有一個(gè)common模塊用于公用代碼,一個(gè)rest模塊用于提供rest接口,rest依賴common,如果用gradle構(gòu)建,目錄樹會(huì)是這樣:
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)建項(xiàng)目并定義項(xiàng)目名
如果是通過IDEA新建一個(gè)本地項(xiàng)目,可按照如下步驟先創(chuàng)建root項(xiàng)目:
1、File -> New -> Project: 選擇Gradle->Java
2、Next, 填寫GroupId和ArtifactId:
GroupId: 如com.diboot
ArtifactId:如demo
3、Next, 指定Gradle home和JVM等
4、Next, 選擇項(xiàng)目存放路徑。完成之后IDEA會(huì)創(chuàng)建相關(guān)文件
接下來如果你需要將本地新項(xiàng)目代碼上傳到代碼倉庫,可以通過VCS菜單導(dǎo)入:
B. 基于代碼倉庫指定的項(xiàng)目名創(chuàng)建root項(xiàng)目
而如果項(xiàng)目名已經(jīng)在倉庫中定義,你需要基于倉庫名初始項(xiàng)目的gradle配置,則項(xiàng)目的初始創(chuàng)建是通過VCS導(dǎo)入,然后用命令行初始化gradle:
File -> New -> Project from Version Control -> ...
切換到Terminal命令行,輸入 gradle init,按照操作提示進(jìn)行root項(xiàng)目的初始化。
創(chuàng)建子模塊/項(xiàng)目
在根目錄demo文件夾右鍵選擇 New -> Module -> Gradle -> Java, 指定子模塊ArtifactId名稱,依次添加common模塊和rest模塊后,gradle相關(guān)的目錄結(jié)構(gòu)就跟我們期望的一致了。
全局gradle配置
在demo根目錄下:
settings.gradle中的結(jié)構(gòu)定義如下
rootProject.name = 'demo' include 'common' include 'rest'
build.gradle中可以定義全局公用的構(gòu)建配置,以Spring Boot項(xiàng)目配置示例:
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}") } } // 所有模塊/項(xiàng)目的通用配置 allprojects { group 'com.diboot' version '1.0-SNAPSHOT' apply plugin: 'idea' } // 子模塊/項(xiàng)目的統(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") // 單元測(cè)試 testCompile("org.springframework.boot:spring-boot-starter-test:$springBootVersion") testCompile("junit:junit:4.12") } configurations { //移除spring boot 默認(rèn)logger依賴 all*.exclude module: 'spring-boot-starter-logging' } }
子模塊/項(xiàng)目gradle配置
通用的依賴配置可以在根目錄下的build.gradle中,子模塊/項(xiàng)目?jī)H配置差異化的部分即可,如子項(xiàng)目特定的依賴。
common下的build.gradle示例:
dependencies { // 配置該項(xiàng)目特有的依賴 }
rest下的build.gradle示例(rest項(xiàng)目依賴common項(xiàng)目):
dependencies { // 依賴common項(xiàng)目 compile project(":common") // 配置該項(xiàng)目特有的依賴 }
以上是“IDEA下如何實(shí)現(xiàn)Gradle多模塊”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!