如何从jenkins注入环境变量
以下是我的maven项目(test-ng)的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,但似乎没有工作。
我已尝试过所有组合,但它只是从位置拾取而不是从jenkins ...
我是詹金斯的新手,我需要专家帮助解决这个问题。我需要做的就是,我应该能够在本地执行期间以及执行jenkins时进行更改。
截图说明(如果可能的话)对我有帮助。
附加我的Jenkins设置的屏幕截图
Jenkins Set up 2 {{3}}
答案 0 :(得分:0)
您的班级正在阅读conf/automation.properties
文件。该文件必须存在于Jenkins作业$ WORKSPACE /目录中。
Env Inject将不替换此文件中的值。
如果你给它一个文件路径(你已经完成),Env Inject将从文件创建环境变量。 Env Inject将从Properties Content(您已经完成)中的任何内容创建环境变量。
更改逻辑以读取环境变量而不是属性文件,或提供所需的属性文件。