Gradle多模块之父子模块

墨尘 126 0

一:新建一个gradle工程

  1. 以springboot为例

在这里插入图片描述


选择gradle project

在这里插入图片描述


可以什么都不选

在这里插入图片描述


选择本地gradle

在这里插入图片描述



二:修改工程

  1. 删除src文件

  2. 修改build.gradle文件



plugins {

    // 引入 api 传递依赖的方法 用来代替compile

    id 'java-library'

    id 'org.springframework.boot' version '2.2.10.RELEASE' apply false

    id 'io.spring.dependency-management' version '1.0.10.RELEASE' apply false

}


ext { // 自定义扩展 字段 这里定义版本信息

    jjwtVersion = '0.11.1'

    commonsLang3Version = '3.9'

    commonsCollections4Version = '4.4'

    commonsCodecVersion = '1.14'

    druidVersion = '1.1.23'

    mapstructVersion = '1.3.0.Final'

    querydslVersion = '4.3.1'

    // https://start.spring.io/actuator/info spring cloud 版本对应 json

    set('springCloudVersion', "Hoxton.SR8")

    set('springCloudAlibabaVersion', "2.2.1.RELEASE")

}


/* 所有子项目的通用配置 */

subprojects {

    /* 使用二进制插件 */

    apply plugin: 'java' /* java是Gradle的核心插件,是内置的,内置插件不需要配置依赖路径 */

    apply plugin: 'idea' /* 同上  让Gradle自动生成Intellij的项目文件*/

    /* 注意gradle插件不再自动应用,所以这里需要指定 */

    apply plugin: 'org.springframework.boot'

    /* 依赖管理插件仍然是一个spring-boot-gradle-plugin传递依赖,所以无需在build.gradle配置中明确列出此依赖。 */

    apply plugin: 'io.spring.dependency-management' /* 依赖管理,用来传递spring的依赖 */


    group = 'com.pay'

    version = '0.0.1' /* 项目版本 */

    /* 指定jdk版本 */

    sourceCompatibility = '1.8'

    /* java编译的时候缺省状态下会因为中文字符而失败 */

    [compileJava, compileTestJava, javadoc]*.options*.encoding = 'UTF-8'


    repositories {

        mavenLocal()

        maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }

        mavenCentral()

    }


    /* 添加通用依赖 */

    dependencies {    

        implementation 'org.springframework.boot:spring-boot-starter-web'

        testImplementation 'org.springframework.boot:spring-boot-starter-test'

    }

}


三:新建子模块

  1. 创建

在这里插入图片描述


  1. 创建方式和上面的创建工程的方式一样

  2. 删除文件(除src和build.gradle)


在这里插入图片描述


3、修改build.gradle


/* 子模块项目名,jar名 */

archivesBaseName='demo-two'

jar.enabled = true

/* 需要org.springframework.boot插件 不需要打包成可执行的jar*/

bootJar .enabled = false


4、由于这个模块只提供公共的utils,log,等,所以不需要启动类

在这里插入图片描述


5、在创建一个模块,创建方式同上,依赖于上一个子模块
build.gradle


archivesBaseName = 'demo-three'


jar.enabled = true

bootJar.enabled = true



dependencies {

    implementation project(':demo-two') /* 子模块之间的依赖 */

}


四:修改父模块setting.gradle

/* 多模块构建 */

/* 父模块名称 */

rootProject . name= 'demo-one'

/* 引入子模块 */

include 'demo-two','demo-three'



五:修改gradle插件

在这里插入图片描述


删除demo-two,demo-three

在这里插入图片描述


展开demo-one里面由子模块的gradel插件,可统一执行脚本,如打包、


六:测试


在这里插入图片描述


启动项目

在这里插入图片描述

测试成功



————————————————

版权声明:本文为CSDN博主「xiyang.ycj」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/YCJ_xiyang/article/details/96827905


标签: #Java #gradle

  • 评论列表

留言评论