我有一个JavaGracle DoCKFr档,它设置了渐变包装器,复制源文件,创建一个JARFILE并运行它:
FROM anapsix/alpine-java:9_jdk
WORKDIR /app
# Prepare Gradle
COPY build.gradle .
COPY gradle/wrapper/gradle-wrapper.jar ./gradle/wrapper/gradle-wrapper.jar
COPY gradle/wrapper/gradle-wrapper.properties ./gradle/wrapper/gradle-wrapper.properties
COPY gradlew .
RUN sh -c "./gradlew"
# Download depencencies here?
COPY . .
# Create Jar
RUN sh -c "./gradlew jar"
EXPOSE 7000
# Run Jar
CMD [ \
"java", \
"-jar", "./build/libs/projectname.jar" \
]
这很好,但是因为jar步骤是下载依赖项的第一步,
每次我修改源代码时,都需要再次下载所有依赖项
. 这使得构建周期比需要的要慢得多。
我想指示gradle下载
build.gradle
在复制源文件之前一步中的文件。
我只是想打个电话
RUN sh -c "./gradlew compileJava"
在复制源代码之前,gradle很聪明,他说没有工作要做,而包含一个文件实际上会下载依赖项。
有没有一种方法可以简单地指示gradle下载依赖项
如中所述
平地
?或者什么是最好的解决办法?
编辑:我不是问利用Gradle缓存,我是问利用Docker层来存储Gradle依赖项。