gradle创建多模块项目

10 篇文章 1 订阅
10 篇文章 1 订阅

第一种方式可视化的:使用eclipse创建多模块项目示例

新建子项目

  • 按向导新建项目gradleFirst
    newProject
    newproject
  • 按向导新建项目gradleSecond(过程略)
  • 按向导新建项目gradleParent(过程略)

完整的项目列表结构如下
projectlist

可以手工删除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>

构建

构建
res

第二种方式:控制台创建项目然后导入

项目存放在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

projectStruct

分别在firstModule和secondModule中添加代码
被依赖
调用代码

编译工程

这里写图片描述

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值