我正试图将Jenkins战争的版本部署到/usr/share/jenkins/jenkins.war
。我试着跑:
local version=$(java -jar /usr/share/jenkins/jenkins.war --version)
不幸的是,在版本号:
之前,它会将几行输出打印到stdoutRunning from: /usr/share/jenkins/jenkins.war
webroot: $user.home/.jenkins
1.643
有没有办法告诉Jenkins避免打印webroot和“从”运行“?这很烦人,我想任何解析它的尝试(检查stdout的第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)
Jenkins版本。