我正在与
gradle 8.11
一起开发 Magnus Larsson 第二版书中的 spring-boot 项目。
我有一个多项目结构,我通过在最顶层目录中运行
./gradlew clean build -x test
来构建 jar。这会在各自的 build/lib
目录中为所有子模块(子项目?)生成 jar。
问题是我添加了一个新的子项目
authorization-server
,它使用springboot 2.4.4
,而其余项目使用springboot 2.6.7
。
现在,当我运行上述命令时,我在子项目
build/lib
中看不到任何authorization-server
目录。我将子项目包含在顶级 settings.gradle
文件中,其中包含行 include ':spring-cloud:authorization-server'
。
因此,我没有为此子项目创建任何 jar。
不同的 Spring Boot 版本会出现问题吗?
我已经被这个问题困扰了很长时间了。我对 gradle 很陌生 - 所以,我不确定我做错了什么。请帮我解决同样的问题。
以下是我
settings.gradle
里面的内容authorization-server
:
rootProject.name = 'authorization-server'
以下是我
build.gradle
里面的内容authorization-server
:
plugins {
// Can't upgrade to Spring Boot 2.5.x until fixes for the following issues are released:
// 1. https://github.com/spring-projects-experimental/spring-authorization-server/issues/305
// 2. https://github.com/spring-projects/spring-security/issues/9787
id 'java'
id 'org.springframework.boot' version '2.4.4'
// id 'io.spring.dependency-management' version '1.1.5'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
}
group = 'com.abc.xyz.practice.springcloud'
version = '1.0.0-SNAPSHOT'
sourceCompatibility = '1.8'
//java {
// toolchain {
// languageVersion = JavaLanguageVersion.of(8)
// }
//}
//
//jar {
// enabled = false
//}
ext {
set('springCloudVersion', "2020.0.2")
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
implementation 'org.springframework.security.experimental:spring-security-oauth2-authorization-server:0.1.0'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
test {
useJUnitPlatform()
}
编辑:
classes
项目的构建目录中看到其余的子文件夹,如 generated
、authorization-server
等 - 只有 libs
目录丢失。./gradlew clean build -x test
运行成功这是一个临时答案,同时摆弄更多问题:
OP 已确认以下命令构建了丢失的 JAR 文件:
./gradlew -p authorization-server bootJar