如何在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

我想通过传递属性文件在Jenkins中传递用户名和密码,并在Java程序中使用此凭据登录到我的应用程序

  • 在Jenkins中注入属性文件
  • 在我的Java程序中使用该文件中的凭据登录到我的应用程序
  • 或者, 另一方面,我可以将其作为jenkins作业的密码传递参数传递,但我无法在java程序中获取此密码

    任何帮助都将不胜感激。提前谢谢

    步骤1)准备一个包含用户名和密码的java属性文件,并将其与java代码放在一起

    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提供的凭证文件,然后在作业配置中选择凭证。