Java Jenkins-Env Inject-Changing.properties文件在我的项目中使用

Java Jenkins-Env Inject-Changing.properties文件在我的项目中使用,java,maven,jenkins,Java,Maven,Jenkins,如何从jenkins注入环境变量 以下是maven项目(test ng)的my automation.properties文件的结构。我已将其放置在项目工作区的config文件夹中 BASEURL = http://uat.myportal.com/ BROWSER = firefox GETDBVERSION=Y TESTDATA = InputTestData/InputData.xlsx GEOMCHECKDATA = InputTestData/Geometry_Check.xls

如何从jenkins注入环境变量

以下是maven项目(test ng)的my automation.properties文件的结构。我已将其放置在项目工作区的config文件夹中

BASEURL = http://uat.myportal.com/
BROWSER   = firefox
GETDBVERSION=Y

TESTDATA = InputTestData/InputData.xlsx
GEOMCHECKDATA = InputTestData/Geometry_Check.xlsx
C_TESTDATA = InputTestData/C_TESTDATA.xlsm
D_TESTDATA = InputTestData/D_TESTDATA.xlsm
然后检索所有属性并将其添加到全局变量中,如下所示:

public void StoreAllConfigProptoConstants() throws Exception
{
    FileInputStream fs = new FileInputStream("config/automation.properties");
    CONFIG = new Properties();
    CONFIG.load(fs);

    Constants.URL = CONFIG.getProperty("BASEURL").trim();
    Constants.TESTDATA = CONFIG.getProperty("TESTDATA").trim();
    Constants.GETDBVERSION= CONFIG.getProperty("GETDBVERSION").trim();
     ....
     ....
}
当我将我的项目与jenkins集成时,我无法更改这些环境变量

有谁能帮我做同样的事吗。我试过使用envInject,但它似乎不起作用

我已经尝试了所有的组合,但它只是从位置,而不是从詹金斯

我是詹金斯的新手,我需要专家帮助解决同样的问题。我需要做的就是,我应该能够在本地执行以及duing jenkins执行期间进行更改

带截图的解释(如果可能的话)会对我很有帮助

附加我的詹金斯设置的屏幕截图


您的类正在阅读
conf/automation.properties
文件。此文件必须存在于Jenkins作业$WORKSPACE/目录中

Env Inject不会替换此文件中的值

如果您为文件指定了文件路径(您已经完成了),Env Inject将从文件中创建环境变量。 Env Inject将从属性内容中的任何内容(您已经完成)创建环境变量


将逻辑更改为读取环境变量而不是属性文件,或者提供所需的属性文件

您的类正在阅读
conf/automation.properties
文件。此文件必须存在于Jenkins作业$WORKSPACE/目录中

Env Inject不会替换此文件中的值

如果您为文件指定了文件路径(您已经完成了),Env Inject将从文件中创建环境变量。 Env Inject将从属性内容中的任何内容(您已经完成)创建环境变量


将逻辑更改为读取环境变量而不是属性文件,或者提供所需的属性文件

请详细解释你所说的“我不能改变这些环境变量”是什么意思。你期望什么?实际结果是什么?嗨,安德烈,当我在本地执行时(不是通过詹金斯),我能够改变环境属性,并且在执行过程中也反映了这一点。但当我使用jenkins调用它时,我无法更改env参数(即使我使用env-Inject插件)。我所需要的是,我应该能够通过詹金斯以及改变环境参数。您的代码正在读取属性文件。您是否正在使用EnvInject在Jenkins中生成属性文件?请提供详细的Jenkins配置、详细结果、日志。@Andre,我正在使用ENV inject插件。但我不确定为什么属性文件没有得到更新/没有从jenkins配置中选取值,但我的jenkins日志清楚地表明它已成功注入。我是否应该对代码进行任何更改以实现它/我是否遗漏了一些内容?@Andre,我已将jenkins配置添加为图像(链接)。请参考我问题下的截图-(Jenkins设置1和Jenkins设置2)。请详细解释您所说的“我无法更改这些环境变量”是什么意思。预期结果是什么?实际结果是什么?嗨,安德烈,当我在本地执行时(不是通过詹金斯),我能够改变环境属性,并且在执行过程中也反映了这一点。但当我使用jenkins调用它时,我无法更改env参数(即使我使用env-Inject插件)。我所需要的是,我应该能够通过詹金斯以及改变环境参数。您的代码正在读取属性文件。您是否正在使用EnvInject在Jenkins中生成属性文件?请提供详细的Jenkins配置、详细结果、日志。@Andre,我正在使用ENV inject插件。但我不确定为什么属性文件没有得到更新/没有从jenkins配置中选取值,但我的jenkins日志清楚地表明它已成功注入。我是否应该对代码进行任何更改以实现它/我是否遗漏了一些内容?@Andre,我已将jenkins配置添加为图像(链接)。请参考我问题下的截图-(詹金斯设置1和詹金斯设置2)。非常感谢您的回复。我能够理解上下文,但在实现相同的过程中遇到了困难。你能提供一些步骤,伪代码和截图来帮助我更好的理解吗?谢谢你的回复。我能够理解上下文,但在实现相同的过程中遇到了困难。你能提供步骤,伪代码和截图,这将帮助我更好地理解。