gpt4 book ai didi

spring - Jenkins构建 jar 比Gradle构建 jar 小

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

我使用命令 gradlew bootJar 在本地计算机(Windows)中构建了一个可执行jar。jar的大小为17,178 Kb

现在我尝试仅在本地计算机上构建和运行使用jenkins.Jar生成的大小远小于gradle生成的jar.jar的大小仅为2 Kb。

我通过将任务指定为jar并在gradle脚本jenkins中构建来进行了尝试。

当我尝试运行jar时,出现如下错误

Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
at com.example.demo.DemoApplication.main(DemoApplication.java:13)
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more

build.gradle :
plugins {
id 'org.springframework.boot' version '2.2.2.RELEASE'
id 'io.spring.dependency-management' version '1.0.8.RELEASE'
id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-parent', version: '2.2.2.RELEASE', ext: 'pom'

testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
}
jar {
enabled=true
}
jar {
manifest {
attributes(
'Main-Class': 'com.example.demo.DemoApplication'
)
}
}

test {
useJUnitPlatform()
}

jenkins的控制台输出:

enter image description here

有人帮我谢谢

最佳答案

在这种情况下,创建一个简单的Jar将不起作用,因为它将简单地将您的源代码打包为jar。您需要的是自包含的脂肪 jar 。

Spring Boot插件已经交付了构建胖子 jar 所需的任务。您应该从gradle中删除以下代码。

jar {
enabled=true
}
jar {
manifest {
attributes(
'Main-Class': 'com.example.demo.DemoApplication'
)
}
}

在您的Jenkinsfile中,将构建jar的命令更新为 ./gradlew build
如果构建成功,则会在 build/libs目录下生成一个胖jar。

关于spring - Jenkins构建 jar 比Gradle构建 jar 小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59390285/

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