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') }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!