## gradle版本8.4或者8.2.1、springboot版本2.7.15、jdk8
## 1、项目结构
```java
- GradleSpringBootDemo
- GradleCommon
- GradleOne
```
- 如图:

## 2、引入依赖
### 2.1、GradleSpringBootDemo的配置
- build.gradle
```
plugins {
id 'java'
id 'idea'
// id 'java-library'
id 'maven-publish'
id 'org.springframework.boot' version '2.7.15'
id 'io.spring.dependency-management' version '1.0.15.RELEASE'
}
//所有模块生效——基础配置
allprojects {
// 配置项目信息
group = 'com.cc'
version = '0.0.1-SNAPSHOT'
// 配置字符编码
tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
}
java {
sourceCompatibility = '8'
targetCompatibility = '8'
}
//仓库配置
repositories {
//本地
mavenLocal()
//阿里仓库
maven { url 'https://maven.aliyun.com/repository/public/' }
//公司仓库。必须用:https。Gradle默认情况下不允许使用不安全的协议,以提高安全性。
maven { url 'https://********:*******/repository/maven-public/' }
//中央仓库
mavenCentral()
}
}
//所有子模块生效——springboot配置、导包版本管理、打包管理
subprojects {
apply plugin: 'java'
apply plugin: 'idea'
//所有子模块都是springboot项目,如不是,不能打包。
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
//所有子模块的-依赖版本管理
dependencyManagement {
dependencies {
dependency "cn.hutool:hutool-all:5.0.7"
dependency "org.apache.commons:commons-lang3:3.5"
}
}
//使用 gradle打包工具
// jar {
// manifest.attributes provider: 'gradle'
// }
tasks.named('test') {
useJUnitPlatform()
}
}
// 定义任务:配置 gradle-wrapper.properties 下载gradle属性
wrapper {
//gradle的版本
gradleVersion = '8.4'
//版本类型:BIN、ALL(完全版,可以看gradle的代码)
distributionType = 'ALL'
}
```
- settings.gradle
```
rootProject.name = 'GradleSpringBootDemo'
include 'GradleOne'
include 'GradleCommon'
```
### 2.2、GradleCommon模块引入依赖
GradleCommon 的 build.gradle
```
dependencies {
implementation('cn.hutool:hutool-all')
implementation 'org.apache.commons:commons-lang3'
}
```
### 2.3、GradleOne模块依赖于GradleCommon
GradleOne 的 build.gradle
```
dependencies {
implementation project(':GradleCommon')
}
```
## 3、问题
GradleOne模块可以使用GradleCommon模块中自己建的类,但是无法使用GradleCommon导入的依赖:hutool和commons-lang3,说明依赖没有传递,请问怎么解决?
- Gradle构建如下图:

- 项目截图2:

## 1、项目结构
```java
- GradleSpringBootDemo
- GradleCommon
- GradleOne
```
- 如图:

## 2、引入依赖
### 2.1、GradleSpringBootDemo的配置
- build.gradle
```
plugins {
id 'java'
id 'idea'
// id 'java-library'
id 'maven-publish'
id 'org.springframework.boot' version '2.7.15'
id 'io.spring.dependency-management' version '1.0.15.RELEASE'
}
//所有模块生效——基础配置
allprojects {
// 配置项目信息
group = 'com.cc'
version = '0.0.1-SNAPSHOT'
// 配置字符编码
tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
}
java {
sourceCompatibility = '8'
targetCompatibility = '8'
}
//仓库配置
repositories {
//本地
mavenLocal()
//阿里仓库
maven { url 'https://maven.aliyun.com/repository/public/' }
//公司仓库。必须用:https。Gradle默认情况下不允许使用不安全的协议,以提高安全性。
maven { url 'https://********:*******/repository/maven-public/' }
//中央仓库
mavenCentral()
}
}
//所有子模块生效——springboot配置、导包版本管理、打包管理
subprojects {
apply plugin: 'java'
apply plugin: 'idea'
//所有子模块都是springboot项目,如不是,不能打包。
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
//所有子模块的-依赖版本管理
dependencyManagement {
dependencies {
dependency "cn.hutool:hutool-all:5.0.7"
dependency "org.apache.commons:commons-lang3:3.5"
}
}
//使用 gradle打包工具
// jar {
// manifest.attributes provider: 'gradle'
// }
tasks.named('test') {
useJUnitPlatform()
}
}
// 定义任务:配置 gradle-wrapper.properties 下载gradle属性
wrapper {
//gradle的版本
gradleVersion = '8.4'
//版本类型:BIN、ALL(完全版,可以看gradle的代码)
distributionType = 'ALL'
}
```
- settings.gradle
```
rootProject.name = 'GradleSpringBootDemo'
include 'GradleOne'
include 'GradleCommon'
```
### 2.2、GradleCommon模块引入依赖
GradleCommon 的 build.gradle
```
dependencies {
implementation('cn.hutool:hutool-all')
implementation 'org.apache.commons:commons-lang3'
}
```
### 2.3、GradleOne模块依赖于GradleCommon
GradleOne 的 build.gradle
```
dependencies {
implementation project(':GradleCommon')
}
```
## 3、问题
GradleOne模块可以使用GradleCommon模块中自己建的类,但是无法使用GradleCommon导入的依赖:hutool和commons-lang3,说明依赖没有传递,请问怎么解决?
- Gradle构建如下图:

- 项目截图2:
