因此,对于使用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的版本?还有其他选择吗?
暂无答案!
目前还没有任何答案,快来回答吧!