有没有办法在 gradle.build 文件中扩展或创建不同的 jib 配置

Is there a way to extend or create different jib configuration in gradle.build file

我正在使用 jib 插件为我的 springboot 应用构建我的 docker 图像。但是,我想在我的构建文件中有一个新任务,它将调用不同的构建 jib 任务。

原因是根据我在gradle中创建的任务,我想为不同的任务设置不同的JVM值。

使用 gradle jib 插件时的现有实现。

示例:

plugins {
    id 'com.google.cloud.tools.jib' version '2.0.0'
}


jib {
    container {
        creationTime = "USE_CURRENT_TIMESTAMP"
        jvmFlags = ['flag a']
    }
}

// Extend jib task and set different flags.
jibWithDifferentVMFlags {
    container {
        creationTime = "USE_CURRENT_TIMESTAMP"
        jvmFlags = ['different flags']
    }
}

在此之后,我可以通过示例选择要构建图像的任务:

./gradlew jib
or
./gradlew jibWithDifferentVMFlags

目的是有thow选项,默认和自定义如上。

我不是 gradle 专家,但我们将不胜感激或欢迎任何不同的方法。谢谢

您可以使用 属性 来模拟配置文件。

plugins {
    id 'com.google.cloud.tools.jib' version '3.1.4'
}


jib {
    container {
        creationTime = "USE_CURRENT_TIMESTAMP"
        jvmFlags = ['flag a']
        if (project.hasProperty('foo')) {
            jvmFlags = ['different flags']
        }
    }
}

要进行 FOO 构建:

$ ./gradlew jib -Pfoo

此外,使用最新的 Jib 3.1.4(截至目前)。