Spring Boot Gradle不生成包装并且不生成可运行的jar

时间:2019-04-02 09:01:48

标签: java spring-boot gradle intellij-idea

我正在尝试创建一个Spring Boot应用程序,该应用程序将使用多阶段dockerfile进行编译并完全在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]

我不能直说的两件事:

  1. 我的项目中的任何地方都没有gradlew文件和gradlew.bat文件。即使有gradle /目录,并且在gradle / wrapper / gradle-wrapper.properties中,我也定义了Gradle版本3.5.1。在设置中,我尝试了“默认包装器”和“包装器任务配置”。

enter image description here

Intellij Idea似乎以某种方式解决了gradle可执行文件。不知道可执行文件在哪里。

  1. 构建时gradle会生成一些输出。但是我无法手动运行或转换为不错的docker命令。它基本上可以编译Java类,仅此而已。在Java中运行主类无效。再一次,使用Intellij Idea的“运行”效果很好。 Intellij是做什么的?

1 个答案:

答案 0 :(得分:1)

为了创建包装器文件,您需要首先以其他方式安装Gradle。选中installation documentation。之后,您需要在项目的根文件夹中运行命令:

gradle wrapper

这将生成必需的wrapperwrapper.bat文件。然后,您可以使用这些脚本从Dockerfile运行。有关使用包装器的更多详细信息,请参见here

生成包装文件后,可以通过转到Settings -> Build, Execution, Deployment -> Gradle并应用Use default gradle wrapper (recommended)单选按钮来配置Intellij。然后,IDEA将使用它。