gpt4 book ai didi

spring-boot - Spring Boot 插件不会在 jar 中添加 lib 文件夹

转载 作者:行者123 更新时间:2023-12-03 03:18:51 25 4
gpt4 key购买 nike

我有以下build.gradle:

group 'as'
version '1.0'

buildscript {
ext {
springVersion = '5.0.4.RELEASE'
springBootVersion = '1.5.6.RELEASE'
springJPAVersion = '2.0.5.RELEASE'
javaxVersion = '1.0.2'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}

apply plugin: 'java'
apply plugin: 'org.springframework.boot'

jar {
baseName = 'reports'
version = '0.0.1'

manifest {
attributes 'Implementation-Title': baseName,
'Implementation-Version': version
}

from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}

repositories {
jcenter()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
}

dependencies {
implementation "org.springframework.boot:spring-boot-starter-web:${springBootVersion}"
implementation "org.springframework.boot:spring-boot-starter-data-jpa:${springBootVersion}"
implementation "org.springframework.data:spring-data-jpa:${springJPAVersion}"
implementation "javax.persistence:persistence-api:${javaxVersion}"
implementation "mysql:mysql-connector-java:5.1.43"

testImplementation group: 'junit', name: 'junit', version: '4.11'
}

然后 gradle 创建具有以下结构的 jar:

  • 启动信息
    • 类(class)
  • 元信息
  • 组织

但好像结构一定是这样的:

  • 启动信息
    • 类(class)
    • 图书馆
  • 元信息
  • 组织

使用包含依赖项的 lib 文件夹,因为现在启动后我得到错误:

Exception ...

Caused by: java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication at com.as.reports.Application.main(Application.java:12)

最佳答案

所以我知道这个答案可能为时已晚,无法为您提供帮助,但我在尝试解决完全相同的问题时偶然发现了这个问题,并想起了 this .

经过半天的反复试验,我找到了解决方案,所以希望我可以让其他人免去寻找这个未解决问题的痛苦。

问题在于在依赖项中使用 implementation 关键字。 1.x Spring Boot Gradle 插件似乎没有将该关键字识别为重新打包 fat jar 所需的依赖项。如果您将它们改回旧的 compile 关键字,您应该获得必要的 lib 文件夹。

关于spring-boot - Spring Boot 插件不会在 jar 中添加 lib 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49544716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com