更新基于java的api版本,而不使docker缓存的mvn下载依赖层失效(即不更改pom.xml)?

7gcisfzg  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(224)

因此,对于使用maven构建的给定javaapi,版本由 <version>1.0.0-SNAPSHOT</version> 在中找到标记 pom.xml . 我们有一个基于输入(主要/次要/补丁等)的版本升级的发布脚本。e、 g如果你给 patch 作为输入,发布脚本用 <version>1.0.1-SNAPSHOT</version> . 在ci管道中,我们使用 Dockerfile .
我正在研究如何利用docker的层缓存(https://cloud.google.com/cloud-build/docs/kaniko-cache#kaniko-构建)以加快maven构建时间。如果我们的 Dockerfile 包括:

FROM maven:3.6.0-jdk-11-slim AS MAVEN_BUILD

# build

COPY pom.xml /app/
WORKDIR /app/

RUN mvn -e -q org.apache.maven.plugins:maven-dependency-plugin:3.1.2:go-offline ...

WORKDIR /
COPY src /app/src/

# Build jar

WORKDIR /app/

RUN mvn -e -q -B package
...

当我们更新 pom.xml 因为 pom.xml 文件现在已更改,docker将运行该步骤,以便maven将所有依赖项脱机,这是迄今为止运行时间最长的任务。即使项目的所有实际依赖项都没有更改,也只有api的版本更改了。
所以我的问题是,您在java世界中使用什么策略来加速构建?有没有什么方法可以在不修改pom.xml的情况下指明这个api的版本?还有其他选择吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题