java - 如何在离线环境中使用 gradle 为 Spring Boot 创建可执行 Jar
问题描述
我想在离线环境中使用 gradle 为 Spring Boot 创建一个可执行的 Jar。有一个错误。请告诉我解决方案。
■命令
C:/~/~/demo gradlew bootJar --offline --stacktrace
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'.
……
■build.gradle
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
解决方案
该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
推荐阅读
- c++ - 如何在 Mac OS 的发布版本中包含 Qt 库?
- angular - Azure 部署 - 将角度托管作为 azure 存储中的静态文件与使用 nodejs 的 Web 应用程序有什么区别?
- javascript - 删除某个类的 span 后的逗号
- objective-c - ios 13 Objective-C 后台任务请求
- c++ - 如何使用偏航、俯仰和滚动来旋转 3D 矢量?
- python - Python字典宾果游戏。需要帮助检查垂直胜利
- python-3.x - Python Socrata API - 无法操作浮动时间戳
- kubernetes - 如何在 pod 上获取客户端的公共 IP?
- google-apps-script - 按名称覆盖文件夹中的现有文件(第 2 部分)
- kotlin - ViewPager 适配器显示错误的图像