Java Spring boot Gradle不生成包装器也不生成可运行jar

Java Spring boot Gradle不生成包装器也不生成可运行jar,java,spring-boot,gradle,intellij-idea,Java,Spring Boot,Gradle,Intellij Idea,我正在尝试创建一个Spring引导应用程序,该应用程序将完全在Docker中编译和运行,使用多阶段dockerfile: ############### #### Build #### ############### FROM openjdk:13-alpine as builder WORKDIR /usr/src/app COPY . . RUN path/to/gradlew build ################ #### Deploy #### ##############

我正在尝试创建一个Spring引导应用程序,该应用程序将完全在Docker中编译和运行,使用多阶段dockerfile:

###############
#### 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“运行”效果很好。Intellij做什么?
为了创建包装文件,您需要首先以其他方式安装Gradle。检查之后,您需要在项目的根文件夹中运行以下命令:

gradle wrapper
这将生成所需的wrapper和wrapper.bat文件。然后可以使用这些脚本从Dockerfile运行。可以找到有关使用包装器的更多详细信息


生成包装文件后,您可以通过进入设置->构建、执行、部署->渐变并应用“使用默认渐变包装推荐”单选按钮来配置Intellij。然后,IDEA将使用它

我已经安装了gradle。Intellij Idea是否已经使用了包装器?如果没有它,它怎么能做到呢?为了让Idea始终只使用包装器,我需要更改什么设置?如果不使用gradle wrapper命令生成包装器文件,Idea将不会使用它。首先生成文件。当然,我可以生成包装。但这对我来说毫无意义。当他们不在的时候,我怎么能选择这个选项呢?在某个时候,Idea将下载这些包装并使用它们。正当即使我在项目的任何地方都看不到他们。我如何确定它们会被使用?IDEA不会下载任何东西。您需要使用gradle包装器任务自己生成它们。IDEA不需要包装来处理gradle项目。正如您所注意到的,它决定了您在本地的gradle安装。即使这样,它也只是用来获取项目的信息。如果你想从IDEA使用gradle,你需要从gradle工具栏显式调用task。我看到IDEA在gradle gradle包装器属性文件中更改gradle时下载gradle bins。这些垃圾箱存放在哪里?