java - Spring Boot Gradle 不生成包装器并且不生成可运行的 jar
问题描述
我正在尝试使用多阶段 dockerfile 创建一个 Spring Boot 应用程序,该应用程序将在 Docker 中完全编译和运行:
###############
#### Build ####
###############
FROM openjdk:13-alpine as builder
WORKDIR /usr/src/app
COPY . .
RUN path/to/gradlew build
################
#### Deploy ####
################
FROM openjdk:13-alpine
WORKDIR /usr/src/app
COPY --from=builder /usr/src/app/some/path /usr/src/app/
EXPOSE 8080
CMD [java, some/path/someJar.jar]
我不能直截了当的两件事:
- 我的项目中的任何地方都没有 gradlew 文件和 gradlew.bat 文件。即使有一个 gradle/ 目录并且在 gradle/wrapper/gradle-wrapper.properties 我定义了 Gradle 版本 3.5.1。在设置中,我尝试了“默认包装器”和“包装器任务配置”。
Intellij Idea 似乎以某种方式解决了 gradle 可执行文件。不知道可执行文件在哪里。
- 构建时 gradle 会生成一些输出。但是我无法手动运行或转换为不错的 docker 命令。它基本上编译了java类,就是这样。在java中运行主类不起作用。再一次,使用 Intellij Idea 'run' 工作正常。Intellij 是做什么的?
解决方案
推荐阅读
- node.js - 在 X 轴上显示日期时间 - Plotly
- javascript - 将 HTML 中的 onclick 直接替换为 JavaScript
- javascript - 打印对象时 JavaScript Google Chrome 控制台中的错误
- phaser-framework - 如何使用纹理包调整精灵的位置
- mongodb - Mongoexport 错误:无法连接到 [127.0.0.1:27017] 无法连接到服务器 127.0.0.1:27017
- version - ProgrammingError: column ir_ui_view.arch 不存在 如何修复?
- portaudio - 在 cc 编译器中链接端口音频
- javascript - 执行存储方法时出现 Ajax crud 错误
- javascript - 将过滤器与包含一起使用不会过滤
- javascript - 为什么 JavaScript 原型方法对相同属性的输出不同?