如何在Jenkins中插入属性文件并在Java代码中使用它的值
我想通过传递属性文件在Jenkins中传递用户名和密码,并在Java程序中使用此凭据登录到我的应用程序如何在Jenkins中插入属性文件并在Java代码中使用它的值,java,jenkins,property-files,Java,Jenkins,Property Files,我想通过传递属性文件在Jenkins中传递用户名和密码,并在Java程序中使用此凭据登录到我的应用程序 在Jenkins中注入属性文件 在我的Java程序中使用该文件中的凭据登录到我的应用程序 或者, 另一方面,我可以将其作为jenkins作业的密码传递参数传递,但我无法在java程序中获取此密码 任何帮助都将不胜感激。提前谢谢 步骤1)准备一个包含用户名和密码的java属性文件,并将其与java代码放在一起 username = xxx password = xxx 步骤2)配置jenkin
username = xxx
password = xxx
步骤2)配置jenkins作业以从属性文件注入环境变量
选项1:选中构建环境
部分下的将环境变量注入构建过程
选项2:添加一个注入环境变量
构建步骤,并将其移动到其他构建步骤的顶部对于这两个选项,指定相对于jenkins作业工作区的凭据属性文件路径 步骤3)在java命令行中指定系统属性:用户名和密码 例如:
java-DUserName=“${username}”-DPassWord=“${password}”
注意:
1.
${xxx}
,属性文件中键的xxx
,区分大小写2.如果用户名或密码包含空格,请使用双引号
3.模式
-Dxxx=“${yyy}”
可以在执行linux shell
和执行windows批处理
构建步骤上工作。步骤4)获取系统属性:Java代码中的用户名和密码
String userName = System.getProperty("UserName")
// the parameter: "UserName" from -Dxxxx, also case sensitive
最简单的方法似乎是通过命令行将其作为系统属性传递(启动JVM时(-D)选项)。您能更详细地解释步骤3和4吗?但这样,我必须在java代码中传递默认密码,其他人可以访问或查看这些密码。这在安全性方面是不好的。System.getProperty()的另一个版本只接受一个参数:System proterty name,不需要默认值。但此属性文件将位于我的Java项目中。我说得对吗?所以在将来,如果我的凭证将被更改,我将不得不访问我的java项目&需要更改那里的属性文件。我说的对吗?如果用户名和密码出现在作业的控制台输出中是可以接受的?如果是,我可以在作业运行期间更新应答以生成auth文件(不存在源代码)。如果没有,您需要添加Jenkins admin提供的凭证文件,然后在作业配置中选择凭证。