第一种方式可视化的:使用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
扫描二维码关注公众号,回复:
959166 查看本文章
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中添加代码