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

问题描述 投票:0回答:4

我正在尝试将 Jenkins 战争的版本部署到

/usr/share/jenkins/jenkins.war
。我尝试跑步:

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

不幸的是,这会在版本号之前将几行愚蠢的输出打印到标准输出:

Running from: /usr/share/jenkins/jenkins.war
webroot: $user.home/.jenkins
1.643

有没有办法告诉 Jenkins 避免打印 webroot 和“从”行运行?这很烦人,我想任何解析它的尝试(检查标准输出的第三行)将来都容易崩溃。

jenkins command-line-interface
4个回答
23
投票

从 Jenkins 1.649 开始,

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

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

(原始答案,Jenkins 1.649 之前)

作为 WAR 打包过程的一部分,Jenkins 版本被写入清单,这是

--version
标志从中获取答案的地方。

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

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

(假设

unzip
和朋友有时间)


6
投票

这是否有帮助(在 Linux 上):

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

3
投票

可以从 config.xml 文件轻松检查 Jenkins 版本。

  1. 导航到服务器中的 Jenkins 文件夹位置。
  2. 在其中搜索 config.xml 文件。大多数情况下它会直接位于 Jenkins 文件夹中
  3. 输入命令head -10 config.xml
  4. 应该在第 7 行 - 2.176.2

0
投票

要提取 WAR 文件,您应该在安装目录中找到它并导航到 META-INF\maven\org.jenkins-ci.main\jenkins-war 中的 pom.xml 文件。在此文件中,您将找到类似于以下内容的代码:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.jenkins-ci.main</groupId>
    <artifactId>jenkins-war</artifactId>
    <version>2.426.2</version>
    <packaging>war</packaging>
    <name>Jenkins war</name>
.....

标签中提到了版本。就我而言,它是版本 2.426.2。

© www.soinside.com 2019 - 2024. All rights reserved.