Spring Boot层jar和构建包

时间:2020-10-26 21:32:16

标签: spring-boot maven

我刚刚开始将Spring Boot 2.3与Layer jar和build pack功能一起使用。

Docker映像始终在构建时

  1. mvn全新安装/软件包
  2. 代码已提交并在git中请求PR

但是,这将减慢构建过程,如何控制构建映像的阶段以及如何控制是否应完全构建映像?

以下是添加到pom文件的配置

<plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <layers>
                    <enabled>true</enabled>
                </layers>
                <image>
                    <name>${image.name}</name>
                    <env>
                        <BP_JVM_VERSION>${BP_JVM_VERSION}</BP_JVM_VERSION>
                    </env>
                </image>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>build-image</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>

2 个答案:

答案 0 :(得分:1)

您可以使用spring-boot.build-image.skip属性

将其添加到具有PLAY [all] ******************************************************************************************************* TASK [set_fact] ************************************************************************************************** ok: [localhost] TASK [debug] ***************************************************************************************************** ok: [localhost] => { "pod_events": [ { "count": 1, "firstTimestamp": "2020-10-27 10:00:00", "lastTimestamp": "2020-10-27 12:00:00", "message": "some message", "reason": "some reason" } ] } PLAY RECAP ******************************************************************************************************* localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 值的属性中

true

因此默认情况下将跳过<properties> <spring-boot.build-image.skip>true</spring-boot.build-image.skip> </properties> 目标。每当您要构建图像时,将build-image传递到cmd

false

更新

如果要将阶段从mvn clean install -Dspring-boot.build-image.skip=false 更改为install,则需要按以下方式配置插件:

package

答案 1 :(得分:1)

默认情况下,build-image目标已附加到package阶段。由于pom.xml中具有package配置,因此每次运行executions目标时都会运行它:

            <executions>
                <execution>
                    <goals>
                        <goal>build-image</goal>
                    </goals>
                </execution>
            </executions>

如果删除此<executions>块,build-image将不会自动运行,但可以与mvn spring-boot:build-image一起手动运行。

或者,您可以通过在install块中指定阶段,将目标附加到<execution>这样的不同阶段:

            <executions>
                <execution>
                    <phase>install</phase>
                    <goals>
                        <goal>build-image</goal>
                    </goals>
                </execution>
            </executions>