从 Github 个操作中提取作业的 POM 版本
Extract POM version, for a job from Github Actions
我正在尝试使用 Github 操作来自动构建我的 docker 容器。
在我的 POM 中,我使用 JIB 创建的 docker 图像版本,我从我的项目版本中提取它。
<groupId>io.xxx.my-proyect</groupId>
<artifactId>my-proyect</artifactId>
<version>0.2.0-SNAPSHOT</version>
<name>my-proyect</name>
...
<plugin>
<groupId>com.google.cloud.tools</groupId>
....
<to>
<image>XXX/my-proyect:${version}</image>
</to>
</plugin>
Github 操作:
- name: package
run: ./mvnw package jib:dockerBuild
- name: push
run: docker push xxx/my-proyect:VERSION (<-- Extract from version property of my POM)
谁知道怎么做。
你可以问Maven using maven-help-plugin
:
mvn help:evaluate -Dexpression=project.version -q -DforceStdout
如果命令不打印任何内容(因为 -q
抑制所有输出,包括评估版本),那么可能是因为使用的 maven-help-plugin
太旧了。如果是这样,您可以像这样固定版本:
mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.version -q -DforceStdout
或者,您可以将版本 3.2.0 固定在您的 pom.xml
或父级 pom.xml
中(如果适用)。
请注意,运行执行 Maven 命令总是需要一些时间,因此它可能会增加您的构建时间几秒钟。如果有效,传递 --offline
可能会有所帮助(或者可能不那么有效)。
或者,您可以 运行 jib:build
而不是 jib:dockerBuild
让 Jib 直接推送到 xxx/my-project:VERSION
。查看您的 YAML,运行 jib:dockerBuild
后跟 docker push
似乎没有任何充分理由。在这种情况下使用 jib:build
将大大缩短您的构建时间,因为 Jib 在推送到本地 Docker 守护程序时会失去很多性能优化。
UDPATE:此外,除非您使用的是 Jib 的 <containerizingMode>packaged
配置,否则不需要 mvn package
。 mvn compile jib:...
就足够了(而且稍微快一点)。
我正在尝试使用 Github 操作来自动构建我的 docker 容器。
在我的 POM 中,我使用 JIB 创建的 docker 图像版本,我从我的项目版本中提取它。
<groupId>io.xxx.my-proyect</groupId>
<artifactId>my-proyect</artifactId>
<version>0.2.0-SNAPSHOT</version>
<name>my-proyect</name>
...
<plugin>
<groupId>com.google.cloud.tools</groupId>
....
<to>
<image>XXX/my-proyect:${version}</image>
</to>
</plugin>
Github 操作:
- name: package
run: ./mvnw package jib:dockerBuild
- name: push
run: docker push xxx/my-proyect:VERSION (<-- Extract from version property of my POM)
谁知道怎么做。
你可以问Maven using maven-help-plugin
:
mvn help:evaluate -Dexpression=project.version -q -DforceStdout
如果命令不打印任何内容(因为 -q
抑制所有输出,包括评估版本),那么可能是因为使用的 maven-help-plugin
太旧了。如果是这样,您可以像这样固定版本:
mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.version -q -DforceStdout
或者,您可以将版本 3.2.0 固定在您的 pom.xml
或父级 pom.xml
中(如果适用)。
请注意,运行执行 Maven 命令总是需要一些时间,因此它可能会增加您的构建时间几秒钟。如果有效,传递 --offline
可能会有所帮助(或者可能不那么有效)。
或者,您可以 运行 jib:build
而不是 jib:dockerBuild
让 Jib 直接推送到 xxx/my-project:VERSION
。查看您的 YAML,运行 jib:dockerBuild
后跟 docker push
似乎没有任何充分理由。在这种情况下使用 jib:build
将大大缩短您的构建时间,因为 Jib 在推送到本地 Docker 守护程序时会失去很多性能优化。
UDPATE:此外,除非您使用的是 Jib 的 <containerizingMode>packaged
配置,否则不需要 mvn package
。 mvn compile jib:...
就足够了(而且稍微快一点)。