Gradle的多模块

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
安装  tree 后 执行 tree -f . > tr.txt 可以生产下面的代码结构
 
 
├── ./api-test
│   ├── ./api-test/build.gradle
│   └── ./api-test/src
│       └── ./api-test/src/main
│           └── ./api-test/src/main/java
├── ./build.gradle
├── ./gradle
│   └── ./gradle/wrapper
│       ├── ./gradle/wrapper/gradle-wrapper.jar
│       └── ./gradle/wrapper/gradle-wrapper.properties
├── ./gradlew
├── ./gradlew.bat
├── ./settings.gradle
 
这是最基本的多模块模式
gradle-wrapper.properties 可以配置国内的镜像地址 distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-7.3.2-bin.zip<br><br>settings.gradle 记录的是项目及模块<br><br>父类的build.gradle 记录了最基本的 引用插件-plugins 依赖包来源-repositories 依赖包配置- dependencies (公共依赖包可以定在这里)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
//buildscript中的ext用于定义框架的版本
buildscript {
    ext {
        springBootVersion = "2.6.13"
        springCloudVersion = "2021.0.5"
        springCloudAlibabaVersion = "2021.0.5.0"
 
    }
}
 
/**
 * 兼容版本
 * springboot 2.6.*或者2.7.*
 * springCloud 2021.0.5
 * springCloudAlibaba 2021.0.5.0
 * nacos 2.2.0
 */
 
// 插件
plugins {
    id "java"
    // 有这个声明,子模块可以使用org.springframework.boot插件而无需指定版本,但是apply=false表示当前模块不使用此插件
    id "org.springframework.boot" version "${springBootVersion}" apply false
    id "io.spring.dependency-management" version "1.0.11.RELEASE"
}
 
 
//定义依赖源
allprojects {
    group = "zt"
    version = "1.0-SNAPSHOT"
    // 仓库
    repositories {
        mavenLocal()
        maven {
            setUrl("https://maven.aliyun.com/repository/public/")
        }
        maven {
            setUrl("https://公司/nexus/content/groups/public/")
        }
        mavenCentral()
    }
}
 
//子模块配置
subprojects {
 
    apply plugin: "org.springframework.boot"  //使用springboot插件
    apply plugin: "io.spring.dependency-management"  //版本管理插件
    apply plugin: "java"
 
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
 
    // java编译的时候缺省状态下会因为中文字符而失败
    [compileJava, compileTestJava, javadoc]*.options*.encoding = "UTF-8"
    // 配置所有子模块的依赖仓库地址
    bootJar {
        archiveBaseName = "dist"
        archiveVersion = ""
    }
    // 依赖管理
    dependencyManagement {
        imports {
            mavenBom "org.springframework.boot:spring-boot-dependencies:${springBootVersion}"
            mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
//            mavenBom "com.alibaba.cloud:spring-cloud-alibaba-dependencies:${springCloudAlibabaVersion}"
        }
    }
 
    //默认应用依赖
    dependencies {
        implementation 'org.springframework.boot:spring-boot-starter-web'
        implementation 'org.springframework.boot:spring-boot-starter-validation'
        implementation 'org.springframework.boot:spring-boot-starter-test'
        implementation 'org.springframework.boot:spring-boot-starter-data-redis'
        implementation 'org.springframework.boot:spring-boot-starter-jdbc'
        implementation "org.springframework.cloud:spring-cloud-starter-bootstrap"
 
        implementation "com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config:${springCloudAlibabaVersion}"
        implementation "com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:${springCloudAlibabaVersion}"
 
        annotationProcessor 'org.projectlombok:lombok:1.18.20'
    }
}

 

子模块的 build.gradle

复制代码
// 配置service模块
plugins {
    id 'java-library'
}
 
dependencies {
    // 定义依赖项
    implementation 'org.projectlombok:lombok:1.18.20'
    implementation project(':api') 
}
复制代码

 

 

  

  

  

posted on   龙&缘  阅读(9)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示