我正试图将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行)很容易在将来破坏.
自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
和朋友一起)
这应该帮助(在Linux上):
head -5 /var/lib/jenkins/config.xml| grep -oP '(?<=).*?(?= )'