当前位置: 首页 > 知识库问答 >
问题:

JenkinsJava:获取开始构建的用户

应俭
2023-03-14

在<code>http://[JENKINS_NAME]/job/[job_NAME]/[BUILD_NUMBER]/

我可以看到由用户[user_NAME]启动。

我想从我的java应用程序中获取该用户名。

非常感谢任何帮助。

共有2个答案

范宏大
2023-03-14

您可以从Jenkins环境(即环境变量)获取构建用户。如果您使用Jenkins2管道,例如:管道{

 //rest of the pipeline
 stages {
   stage('Build Info') {
     steps {
       wrap([$class: 'BuildUser']) {
        sh 'java -jar <your_java_app>.jar'
       }
     } 
   }
 }

在您的java应用程序中,您应该能够使用< code > system . getenv(" BUILD _ USER ")来获取环境变量,或者您可以将它作为JVM arg来传递。例如:< code > sh ' Java-jar-DbuildUser = $ BUILD _ USER

在旧版本的Jenkins上,您可以使用构建用户变量插件或环境注入插件。就像这个问题的答案。当作业被定时器触发时,如何在Jenkins中获取BUILD_USER

皇甫飞宇
2023-03-14

您可以通过http调用来获取所有这些详细信息。获取这些详细信息的URL是:

http://<Jenkins URL>/job/<job name>/<build number>/api/json

在其余调用之后,您将获得此 json。

{
"_class": "hudson.model.FreeStyleBuild",
"actions": [
    {
        "_class": "hudson.model.CauseAction",
        "causes": [
            {
                "_class": "hudson.model.Cause$UserIdCause",
                "shortDescription": "Started by user XXXXXX",
                "userId": "xxx@yyy.com",
                "userName": "ZZZZZZZZ"
            }
        ]
    },
    {},
    {
        "_class": "jenkins.metrics.impl.TimeInQueueAction"
    },
    {},
    {}
],
...
}

因此,您所要做的就是解析这个json并获取< code > javavar[' actions '][0][' causes '][0][' userName ']下的值。肯定只会是那样。我可能不确定指数。你只要试着找出。希望这有所帮助。

对于jenkins实例中的大多数页面,您将拥有< code>REST API链接。请点击它来查看rest api url及其输出。

 类似资料:
  • 问题内容: 下 我可以看到 由[USER_NAME]用户启动 。 我想从我的Java应用程序中获取该用户名。 任何帮助深表感谢。 问题答案: 您可以拨打http以获得所有这些详细信息。获取这些详细信息的URL是: 在其余的调用之后,您将获得此json。 因此,您所要做的就是解析此json并获取下的值。绝对是那样。我可能不确定这些索引。您只需尝试找出。希望这可以帮助。 通常,对于jenkins实例中

  • 问题内容: 我想知道如何检索实例的父结构。 我不知道如何实现这一目标。 例如: 干杯 问题答案: 您应该保留一个指向引擎盖的指针。 当你增加房子 那么您可以轻松更改,尽管此时可能不需要吸气剂。

  • —profile 参数可以收集一些构建期间的信息并保存到 build/reports/profile 目录下. 并且会以构建时间命名这些文件. 下面是一份日志. 这份日志记录了总体花费时间以及各过程花费的时间. 并以时间大小倒序排列. 并且记录了任务的执行情况. 如果采用了 buildSrc, 那么在 buildSrc/build 下同时也会生成一份日志记录记录.

  • 我正在计算一个时间窗口上的计数(求和1),如下所示: 我还想将窗口开始时间添加为一个关键字段。所以结果会是这样的: 所以本质上是按窗口聚合计数。最终目标是绘制这些窗口的直方图。 如何将窗口的开头添加为键中的字段?然后,在这种情况下,将窗口对齐到00秒或30秒?这可能吗?

  • 目前,我正在使用电子邮件确认的用户注册表单。 我已经设法启动我的应用程序使用链接在电子邮件,但我不知道如何获得链接的用户点击启动我的应用程序。

  • 我的Gradle项目的结构如下: 通常,要获取 文件夹的绝对路径,我只需在根 文件中执行即可。 但不幸的是,如果您从项目目录外部运行gradle脚本,例如执行如下操作,则此方法不起作用: 使用上一个命令,gradle 是在项目的父级中查找 目录,因为我从那里开始编写脚本。 是否有方法获得项目的绝对路径,即构建位置。gradle是,即使您从另一个目录启动脚本?或者有没有其他方法来获取脚本所在文件夹中