如何在Eclipse Gradle项目的“运行配置”中设置环境变量?

时间:2020-08-31 20:01:08

标签: java eclipse gradle

我在Eclipse中有一个gradle项目,该项目在运行时读取环境变量。我可以成功创建一个jar,将export MY_VAL=7放入外壳中,然后执行该jar。但是我想从eclipse中运行项目,所以我需要将环境变量放在运行配置中的某个位置。
对于普通的Java项目,这很简单:

enter image description here

但是gradle中没有这样的标签:

enter image description here

如何为执行时间指定环境变量?

抢先消除歧义:
Eclipse : How to set env variables for Gradle run的标题非常相似,但实际上要求可以使用gradle读取的环境变量

2 个答案:

答案 0 :(得分:0)

根据所使用的库和框架,可以采用不同的方法,但是对于简单的应用程序,可以创建一个属性文件,然后在应用程序启动时加载该文件。您可以为dev / prod / etc提供单独的属性文件。并根据您的构建环境加载它们。

查看本文以获得简要概述: https://medium.com/@ubuntudroid/handling-environment-variables-in-gradle-fb1b8bb6c758

编辑 您可以使用此属性文件方法将变量加载到gradle构建过程或Java应用程序中。 Gradle的Java插件仅允许您为gradle任务指定环境变量,而不是您的实际应用程序。

答案 1 :(得分:0)

对于普通的Java项目,这很简单:

是的,因为在一个普通的Java项目中,Eclipse运行您的应用程序。但是在Gradle项目中,Eclipse运行Gradle,而Gradle运行您的应用程序。如果您可以告诉Gradle应该如何运行应用程序,则无需告诉Eclipse应该如何告诉Gradle运行应用程序。

使用Gradle,有关项目工作的所有相关步骤,例如编译代码,运行测试,创建JAR或运行生成的应用程序,应由Gradle处理。主要优点是所有这些步骤都可以独立于Eclipse(或任何其他IDE)执行。但是,如果应独立于Eclipse执行它们,则在Eclipse中对其进行配置没有任何意义。相反,您应该配置构建脚本。

由于您没有将build.gradle添加到问题中,所以我只能猜测它的样子,但是可能您正在使用Gradle Application插件及其任务run。任务run的类型为JavaExec,因此提供了一种方法environment来定义环境变量:

run {
    environment 'MY_VAL', '7'
}

从现在开始,您可以只从Eclipse调用任务run(甚至使用gradle rungradlew run从命令行调用)以使用环境变量{{1 }}。

相关问题