Jib:根据 Maven 配置文件设置存储库
Jib: set repository depending on maven profile
我有一个应用程序,我想将其推送到存储库 A
或 B
,具体取决于 运行.
的配置文件
例如:
如果我 运行 在 Jenkins sh "./mvnw package -Pint verify -DskipTests jib:dockerBuild"
它应该推送到我们的集成注册表。
如果我 运行 在 Jenkins sh "./mvnw package -Pprod verify -DskipTests jib:dockerBuild"
它应该推送到我们的生产存储库。
我已经这样设置了我的 pom:
<from>
<image>adoptopenjdk:11-jre-hotspot</image>
</from>
<to>
<image>${docker.repository.url}/${docker.image.prefix}/${project.artifactId}</image>
<tags>
<tag>${project.version}-${spring.profiles.active}-${git.commit.id.abbrev}</tag>
</tags>
</to>
如何让它以这种特定方式运行?
这很简单 :D。您只需要在 <profile>
部分内定义一个 <properties>
部分。当您 运行 指定的配置文件时,将添加这些属性(我有强烈的感觉它确实覆盖了全局 <properties>
部分中设置的任何 属性)。
例如:
<profiles>
<profile>
<id>int</id>
<properties>
<docker.repository.url>https://your.docker.registry</docker.repository.url>
</properties>
</profile>
</profiles>
关于 profiles documentation page 有更多信息,特别是哪些元素可以在配置文件中使用。
我有一个应用程序,我想将其推送到存储库 A
或 B
,具体取决于 运行.
例如:
如果我 运行 在 Jenkins sh "./mvnw package -Pint verify -DskipTests jib:dockerBuild"
它应该推送到我们的集成注册表。
如果我 运行 在 Jenkins sh "./mvnw package -Pprod verify -DskipTests jib:dockerBuild"
它应该推送到我们的生产存储库。
我已经这样设置了我的 pom:
<from>
<image>adoptopenjdk:11-jre-hotspot</image>
</from>
<to>
<image>${docker.repository.url}/${docker.image.prefix}/${project.artifactId}</image>
<tags>
<tag>${project.version}-${spring.profiles.active}-${git.commit.id.abbrev}</tag>
</tags>
</to>
如何让它以这种特定方式运行?
这很简单 :D。您只需要在 <profile>
部分内定义一个 <properties>
部分。当您 运行 指定的配置文件时,将添加这些属性(我有强烈的感觉它确实覆盖了全局 <properties>
部分中设置的任何 属性)。
例如:
<profiles>
<profile>
<id>int</id>
<properties>
<docker.repository.url>https://your.docker.registry</docker.repository.url>
</properties>
</profile>
</profiles>
关于 profiles documentation page 有更多信息,特别是哪些元素可以在配置文件中使用。