Eclipse Buildship如何在项目范围上设置环境变量

Eclipse Buildship如何在项目范围上设置环境变量,eclipse,gradle,buildship,Eclipse,Gradle,Buildship,我们把项目从ant转到gradle。现在gradle脚本看起来像这样 [...] def filterFile = System.getProperty('filter.file') [...] 所有任务都严重依赖于环境变量filterFile。 我们使用eclipse(氧气,2017年12月2日)和buildship(2.2.1V20180125-1441) (eclipse中预装了哪一个?buildship Automatically随eclipse一起提供的说法正确吗?) 我唯一

我们把项目从ant转到gradle。现在gradle脚本看起来像这样

[...]    
def filterFile = System.getProperty('filter.file')
[...]
所有任务都严重依赖于环境变量filterFile。 我们使用eclipse(氧气,2017年12月2日)和buildship(2.2.1V20180125-1441) (eclipse中预装了哪一个?buildship Automatically随eclipse一起提供的说法正确吗?)

我唯一能让它工作的方法就是在任务级别设置变量参见屏幕截图

同样的方法在项目级别不起作用:

现在,当我删除任务上的设置并将其放在项目全局设置上,然后执行与此相同的任务时,它会显示:

Program Arguments: None
Build Scans Enabled: false
Offline Mode Enabled: false
Gradle Tasks: copyHtml

Filter file null not loaded, some tasks may fail
而当我将其设置为任务级别时,它就起作用了

以下是我在eclipse中对gradle的首选设置:

请您解释一下如何设置项目范围的环境变量。 顺便说一句:我用谷歌搜索了这个问题,发现了关于主目录gradle.properties文件的信息。但我认为这将设置项目变量,而不是环境变量。当我们从ant切换到gradle时,gradle构建脚本依赖于System.getProperty('filter.file'),这可能是为gradle设置此项的错误方法,但这是从ant迁移的剩余内容,因此我们很难为每个任务更改此项(因为我们有很多)


请告知

请注意,它们是(Java的东西)而不是(操作系统的东西)

为什么您当前的设置不起作用? 第二个示例不应用项目范围的命令行参数,而是应用Eclipse运行配置的命令行参数,该配置在不指定任何任务的情况下执行Gradle。这将导致Gradle只运行配置阶段而不执行任何任务,或者,如果在构建脚本中指定了任务,则运行默认任务

你如何解决你的问题? 如中所述,您不仅可以使用命令行选项
-D
注册系统属性,还可以使用前面提到的
gradle.properties
文件。只需将
systemProp
前缀添加到属性名称:

systemProp.filter.file=hhe-lenovo.dev.properties

感谢您的快速回答,gradle.properties文件需要放在哪里?要么在与
build.gradle
文件相同的目录中(如果属性适用于所有用户),要么在
gradle\u USER\u HOME
中,默认为个人主目录中的文件夹
.gradle