我在Eclipse中有一个gradle项目,该项目在运行时读取环境变量。我可以成功创建一个jar,将export MY_VAL=7
放入外壳中,然后执行该jar。但是我想从eclipse中运行项目,所以我需要将环境变量放在运行配置中的某个位置。
对于普通的Java项目,这很简单:
但是gradle中没有这样的标签:
如何为执行时间指定环境变量?
抢先消除歧义:
Eclipse : How to set env variables for Gradle run的标题非常相似,但实际上要求可以使用gradle读取的环境变量
答案 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 run
或gradlew run
从命令行调用)以使用环境变量{{1 }}。