build/lib 不是由 gradle build 生成的

问题描述 投票:0回答:1

我正在与

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()
}

编辑:

  1. 我可以在
    classes
    项目的构建目录中看到其余的子文件夹,如
    generated
    authorization-server
    等 - 只有
    libs
    目录丢失。
  2. 此外,命令
    ./gradlew clean build -x test
    运行成功
  3. 与往常一样,正在生成剩余子项目的 jar。
java spring spring-boot gradle
1个回答
0
投票

这是一个临时答案,同时摆弄更多问题:

OP 已确认以下命令构建了丢失的 JAR 文件:

./gradlew -p authorization-server bootJar
© www.soinside.com 2019 - 2024. All rights reserved.