gradle建立多模組專案
阿新 • • 發佈:2019-01-07
第一種方式視覺化的:使用eclipse建立多模組專案示例
新建子專案
- 按嚮導新建專案gradleFirst
- 按嚮導新建專案gradleSecond(過程略)
- 按嚮導新建專案gradleParent(過程略)
完整的專案列表結構如下
可以手工刪除gradleParent中不必要的檔案
配置
修改gradleParent的相關配置
修改settings.gradle
rootProject.name = 'gradleParent'
include ':gradleFirst', ':gradleSecond'
project(':gradleFirst' ).projectDir = new File(settingsDir, '../gradleFirst')
project(':gradleSecond').projectDir = new File(settingsDir, '../gradleSecond')
修改build.gradle
apply plugin: 'java'
apply plugin: 'eclipse'
repositories {
jcenter()
}
dependencies {
testCompile 'junit:junit:4.12'
}
dependencies {
compile project(':gradleFirst' )
compile project(':gradleSecond')
}
檢視結果
開啟命令列,進入gradleParent目錄,看看有哪些變化
E:\eclipseWS\gradleWS\gradleParent>gradle project
> Task :projects
------------------------------------------------------------
Root project
------------------------------------------------------------
Root project 'gradleParent'
+--- Project ':gradleFirst'
\--- Project ':gradleSecond'
To see a list of the tasks of a project, run gradle <project-path>:tasks
For example, try running gradle :gradleFirst:tasks
BUILD SUCCESSFUL in 1s
1 actionable task: 1 executed
E:\eclipseWS\gradleWS\gradleParent>
構建
第二種方式:控制檯建立專案然後匯入
專案存放在E:\eclipseWS\gradleWS目錄下,在此專案中建立一個子專案之間的呼叫關係
建立專案總目錄
開啟cmd,進入E:\eclipseWS\gradleWS目錄
C:\Users\Administrator>cd /d E:\eclipseWS\gradleWS
E:\eclipseWS\gradleWS>
E:\eclipseWS\gradleWS>mkdir gradleMain
進入專案主目錄並初始化
E:\eclipseWS\gradleWS\gradleMain>gradle init
BUILD SUCCESSFUL in 2s
2 actionable tasks: 2 executed
E:\eclipseWS\gradleWS\gradleMain>tree /f
資料夾 PATH 列表
卷序列號為 0004-26A4
E:.
│ build.gradle
│ gradlew
│ gradlew.bat
│ settings.gradle
│
├─.gradle
│ ├─4.5.1
│ │ └─taskHistory
│ │ taskHistory.bin
│ │ taskHistory.lock
│ │
│ └─buildOutputCleanup
│ buildOutputCleanup.lock
│ cache.properties
│ outputFiles.bin
│
└─gradle
└─wrapper
gradle-wrapper.jar
gradle-wrapper.properties
E:\eclipseWS\gradleWS\gradleMain>
建立多模組
建立使用的目錄,比如建立三個模組,分別叫做firstModule、secondModule、thirdModule。分別建立main、test、resources
E:\eclipseWS\gradleWS\gradleMain>mkdir firstModule\src\main\java
E:\eclipseWS\gradleWS\gradleMain>mkdir firstModule\src\main\resources
E:\eclipseWS\gradleWS\gradleMain>mkdir firstModule\src\test\java
E:\eclipseWS\gradleWS\gradleMain>mkdir firstModule\src\test\resources
E:\eclipseWS\gradleWS\gradleMain>
E:\eclipseWS\gradleWS\gradleMain>mkdir secondModule\src\main\java
E:\eclipseWS\gradleWS\gradleMain>mkdir secondModule\src\main\resources
E:\eclipseWS\gradleWS\gradleMain>mkdir secondModule\src\test\java
E:\eclipseWS\gradleWS\gradleMain>mkdir secondModule\src\test\resources
E:\eclipseWS\gradleWS\gradleMain>
E:\eclipseWS\gradleWS\gradleMain>mkdir thirdModule\src\main\java
E:\eclipseWS\gradleWS\gradleMain>mkdir thirdModule\src\main\resources
E:\eclipseWS\gradleWS\gradleMain>mkdir thirdModule\src\test\java
E:\eclipseWS\gradleWS\gradleMain>mkdir thirdModule\src\test\resources
配置
修改gradleMain目錄裡的settings.gradle
include 'firstModule','secondModule','thirdModule'
修改gradleMain目錄裡的buid.gradle
/*
* This file was generated by the Gradle 'init' task.
*
* This is a general purpose Gradle build.
* Learn how to create Gradle builds at https://guides.gradle.org/creating-new-gradle-builds/
*/
// 所有子專案的通用配置
/*
* This file was generated by the Gradle 'init' task.
*
* This is a general purpose Gradle build.
* Learn how to create Gradle builds at https://guides.gradle.org/creating-new-gradle-builds/
*/
// 所有子專案的通用配置
subprojects {
apply plugin: 'java'
apply plugin: 'eclipse'
version = '1.0'
// JVM 版本號要求
sourceCompatibility = 1.8
targetCompatibility = 1.8
// java編譯的時候預設狀態下會因為中文字元而失敗
[compileJava,compileTestJava,javadoc]*.options*.encoding = 'UTF-8'
//定義版本號
ext {
}
repositories {
mavenCentral()
}
jar {
manifest {
attributes("Implementation-Title": "Gradle")
}
}
configurations {
// 所有需要忽略的包定義在此
all*.exclude group: 'commons-httpclient'
all*.exclude group: 'commons-logging'
all*.exclude group: 'commons-beanutils', module: 'commons-beanutils'
}
dependencies {
// 通用依賴
// 測試依賴
testCompile(
"junit:junit:4.12"
)
}
}
分別修改模組的build.gradle
firstModule
archivesBaseName = 'firstModule'
secondModule
archivesBaseName = 'secondModule'
archivesBaseName = 'secondModule'
project.dependencies {
compile(
project(':firstModule'),
)
testCompile(
project(':firstModule').sourceSets.test.output,
)
}
thirdModule
archivesBaseName = 'thirdModule'
編譯
E:\eclipseWS\gradleWS\gradleMain>gradle -i build
E:\eclipseWS\gradleWS\gradleMain>gradle project
> Task :projects
------------------------------------------------------------
Root project
------------------------------------------------------------
Root project 'gradleMain'
+--- Project ':firstModule'
+--- Project ':secondModule'
\--- Project ':thirdModule'
To see a list of the tasks of a project, run gradle <project-path>:tasks
For example, try running gradle :firstModule:tasks
BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed
匯入工程
import->gradle->existing gradle project
分別在firstModule和secondModule中新增程式碼