当前位置: 首页 > 知识库问答 >
问题:

如何在离线环境中使用gradle为Spring Boot创建可执行的Jar

纪畅
2023-03-14

我想在离线环境中使用 gradle 为Spring启动创建一个可执行的 Jar。存在错误。请告诉我解决方案。

■cmd

C: /~/~/demo gradlew bootJar--脱机--堆栈跟踪

FAILURE: Build failed with an excetion.

What went wrong:
Task 'bootJar' not found in root project 'demo'.

Exception is:
org.gradle.execution. TaskSelectionException: Task 'bootJar' not found in root project 'demo'.

……

■建筑坡度

plugins {
//  id 'org.springframework.boot' version '2.4.2'
//  id 'io.spring.dependency-management' version '1.0.11.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'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

test {
    useJUnitPlatform()
}

■gradle-wrapper.properties

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=gradle-6.6.1-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

■版本

SpringBoot:2.4.2
gradle:6.6.1

共有1个答案

拓拔辰钊
2023-03-14

bootJar 任务来自 Spring Boot Gradle 插件 (org.springframework.boot)。您已经从项目中删除了插件,因此永远不会创建 bootJar 任务。

Gradle足够聪明,可以缓存构建的各个部分,包括依赖项和插件。然而,因为你得到了那个错误,Spring Boot插件没有被缓存,所以你必须暂时在线以便下载和缓存插件。

如果您暂时无法联机,那么对于bootJar任务,您必须在项目中重新实现自己:https://github.com/spring-projects/spring-boot/blob/2.4.x/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootJar.java

 类似资料:
  • 如何用Gradle创建可执行JAR? 我尝试了,但它不起作用。

  • 我是一个初学者,我想使用nodejs运行Cordova,并且已经完成了安装和设置环境变量的所有说明,但是它报告说它找不到Gradle包装器。以下是错误: Blockquote c:\Cordova\hello>Cordova build android检查Java JDK和android SDK版本Android_SDK_ROOT=c:\users\tehud\appdata\local\andr

  • 我在Gradle 4.6中有一个简单的项目,我想为它制作一个可执行的JAR。我尝试过,,,插件,但它们都没有添加我声明为的依赖项(我没有任何依赖项)。它与一起工作,例如用于插件,但我希望有依赖项。

  • 问题内容: 到目前为止,我已经通过Eclipse的“导出…”功能创建了可运行的JAR文件,但是现在我切换到IntelliJ IDEA和Gradle进行构建自动化。 这里的一些文章建议使用“应用程序”插件,但这并不能完全导致我期望的结果(只是JAR,没有启动脚本或类似的东西)。 如何通过Eclipse的“导出…”对话框获得相同的结果? 问题答案: 可执行jar文件只是清单中包含Main- Class

  • 问题内容: Spring Boot的首选部署方法是通过其中包含tomcat的可执行jar文件。 它从简单开始。 现在,我想将该jar部署到EC2上的linux服务器上,是否丢失了某些东西,还是真的需要创建一个初始化脚本来正确地将应用程序作为守护程序启动? 如果我只是简单地调用,则应用程序在注销时死亡。 我可以在屏幕或nohup中启动它,但这不是很优雅,并且在服务器中重新启动会迫使我登录并手动启动该

  • Spring Boot的首选部署方法是通过内部包含tomcat的可执行jar文件。 它由一个简单的开始。 现在,我想将jar部署到EC2上的linux服务器上,是我遗漏了什么,还是我真的需要创建一个init脚本来正确地启动应用程序作为守护进程? 如果我只是调用,那么当我注销时,应用程序就会死亡。 我可以在screen或nohup中启动它,但这不是很好,在服务器中重新启动会迫使我手动登录并启动进程。