- GradleSpringBootDemo
- GradleCommon
- GradleOne
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'
}
rootProject.name = 'GradleSpringBootDemo'
include 'GradleOne'
include 'GradleCommon'
GradleCommon 的 build.gradle
dependencies {
implementation('cn.hutool:hutool-all')
implementation 'org.apache.commons:commons-lang3'
}
GradleOne 的 build.gradle
dependencies {
implementation project(':GradleCommon')
}
GradleOne模块可以使用GradleCommon模块中自己建的类,但是无法使用GradleCommon导入的依赖:hutool和commons-lang3,说明依赖没有传递,请问怎么解决?
Gradle构建如下图:
项目截图2:
implementation改成api试试,gradle的高版本需要改成api才会传递依赖,具体可以看gradle文档https://docs.gradle.org/current/userguide/java_library_plugin.html
GradleCommon 的 build.gradle
dependencies {
api('cn.hutool:hutool-all')
api 'org.apache.commons:commons-lang3'
}
卧槽,谢谢大佬。真给我解决了。
我看api不是作废了么,咋又能用了。