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

标签 gradle build.gradle gradlew jib

我正在使用 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

目标是有两个选项,默认选项和自定义选项,如上所述。

我不是 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(截至目前)。

关于gradle - 有没有办法在 gradle.build 文件中扩展或创建不同的 jib 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69124180/

相关文章:

android - 从 Linux 终端编译为 apk

java - 运行 Java 集成测试时未设置环境变量

java - 从 Spring Boot 1.3 升级到 1.4 RC1 时 org.hibernate.internal.SessionFactoryImpl.<init> 抛出的 AbstractMethodError

android - Cordova CLI 项目在工具链升级后忽略 build-extras

gradle - 如何在 Minecraft Forge (Forge Gradle 3) 中使用 mod 添加另一个 sourceSet?

java - 如何在 Android Studio 项目中添加和使用 AAR

android-studio - 我更新了 Android Studio,现在 gradle 项目同步失败

gradle - 从存储库下载并作为Gradle构建的第一步执行jar

android - tools.build :gradle:2. 3.1 感染了 HEUR :Trojan. AndroidOS.Boogr.gsh

Gradle : Copy different properties file depending on the environment and create jar