手记

【九月打卡】第十九天 多模块项目构建

第一模块:课程介绍

课程名称:新一代构建工具gradle
课程章节:4-6 多项目构建介绍
主讲老师:skyding

第二模块:课程内容

了解多模块项目的搭建

第三模块:课程收获

多项目构建

什么是项目模块化呢?

在企业项目中,包层次和类关系比较复杂,把代码拆分成模块通常是最佳实践,这需要你清晰的划分功能的边界,比如把业务逻辑和数据持久化拆分开来。项目符合高内聚低耦合时,模块化就变得很容易,这是一条非常好的软件开发实践

那么怎么开始呢。

先检测项目的依赖关系

我们按照MVC的模式来进行划分

首先是Model模块,这里面都是一些源数据。

Repository是用来存储数据的,那么它肯定是依赖Model这个模块,因为它使用到了源数据。

Web模块就是我们的页面。那么它肯定是依赖了另外两个模块就好了。然后按照依赖的传递性,因为Repository依赖了Model。那么Web只要依赖Repository就好了。

配置子项目

配置要求

  • 所有的项目都用Java插件
  • web子项目打包成war
  • 所有的项目添加logback日志功能
  • 统一配置公共属性

看下项目的依赖关系

那么开始实际配置

我们在项目中右键新建一个gradle项目

取名为model

同样的创建一个repository模块

那么现在目录是这么一个结构

那么现在就有个问题了。repository中的Main会报一个找不到TodoItem的错误。

那么在build中写入

implementation project(":model")

来引入model模块。

这个时候Main文件就不会报错了。

同样的,在settings.gradle文件中会显示出项目有哪些文件

rootProject.name = 'todo'
include 'model'
include 'repository'

在右侧的gradle菜单也会发生变化。

多来了两个模块

那么现在。我们的多模块项目的架子就好了。

接下来要完成几个任务

  1. 所有的项目都使用Java插件

每一个项目在创建的时候,都会有一个

plugins {
    id 'java'
}

allprojects 中可以写任何build.gradle中能写的东西!

  1. 所有项目有日志打印

使用subprojects来配置子项目的通用依赖和配置。

subprojects {
    repositories {
        mavenLocal()
        mavenCentral()
    }
    dependencies {
        implementation('org.hibernate:hibernate-core:3.6.3.Final') {
            // exclude group: "org.slf4j", module: "slf4j-api"
        }
        implementation "ch.qos.logback:logback-classic:1.2.11"
        testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
        testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
    }
}

第四模块:课程记录

0人推荐
随时随地看视频
慕课网APP