通过java -jar jenkins.war获取Jenkins版本 - 无垃圾邮件输出

时间:2016-01-04 05:47:15

标签: jenkins command-line-interface

我正试图将Jenkins战争的版本部署到/usr/share/jenkins/jenkins.war。我试着跑:

local version=$(java -jar /usr/share/jenkins/jenkins.war --version)

不幸的是,在版本号:

之前,它会将几行输出打印到stdout
Running from: /usr/share/jenkins/jenkins.war
webroot: $user.home/.jenkins
1.643

有没有办法告诉Jenkins避免打印webroot和“从”运行“?这很烦人,我想任何解析它的尝试(检查stdout的第3行)很容易在将来破坏。

3 个答案:

答案 0 :(得分:15)

自Jenkins 1.649以来,--version标志导致版本直接打印出来而没有任何无关的信息:

$ wget -q http://mirrors.jenkins.io/war/1.649/jenkins.war \
      && java -jar jenkins.war --version
1.649

(原始答案,詹金斯之前1.649)

作为WAR打包过程的一部分,Jenkins版本被写入清单,这是--version标志得到答案的地方。

虽然它可能不是特别漂亮,但这应该是稳定的:

unzip -c /usr/share/jenkins/jenkins.war META-INF/MANIFEST.MF \
  | egrep ^Jenkins-Version: | awk '{print $2}' 

(假设unzip和朋友的可用性)

答案 1 :(得分:3)

这应该有帮助吗(在Linux上):

head -5  /var/lib/jenkins/config.xml| grep -oP '(?<=<version>).*?(?=</version>)'

答案 2 :(得分:2)

可以轻松地从 config.xml 文件检查

Jenkins版本。

  1. 导航到服务器中的Jenkins文件夹位置。
  2. 在其中搜索 config.xml 文件。通常,它将直接位于Jenkins文件夹中
  3. 键入命令 head -10 config.xml
  4. 它应该在第七行- 2.176.2