将环境变量从build.gradle传递到自定义插件

问题描述 投票:0回答:1

我有一个部分在build.gradle中定义环境变量,我想将其传递给我的自定义插件。

build.gradle的片段如下:

apply "myplugin"

ext { 
    lombokVersion = '1.18.6'
    setEnvironmnetVariables = { 
        environment -> environment.put{'RUNTIME_ENV', 'test')
    }

我想在我的插件“ myplugin”中看到此RUNTIME_ENV。我是这个gradle插件开发的新手。有人可以帮我吗?我正在使用具有Groovy的spring-boot项目。

gradle build.gradle gradle-plugin
1个回答
0
投票

您通常不能通过Gradle或Java设置环境变量。

但是您可以设置dynamic project properties,这是将信息传达到您的自定义插件的一种方法。

由于您已经在使用extra propeties,因此您可以直接设置所需的值:

// Root project build.gradle
ext {
    lombokVersion = "1.18.6"
    RUNTIME_ENV = "test
}

然后您的自定义插件,您可以像这样访问它们:

import org.gradle.api.Plugin;
import org.gradle.api.Project;

public class MyPlugin implements Plugin<Project> {

    @Override
    public void apply(Project project) {
        String runtimeEnv = (String) project.getExtensions().getExtraProperties().get("RUNTIME_ENV");
        // do something with variable
    }

}

Gradle在构建插件方面提供了很棒的指南,请看一下。

此外,如果您在本地安装了Gradle,则可以使用init任务创建一个框架式Gradle插件项目:

gradle help --task init
© www.soinside.com 2019 - 2024. All rights reserved.