0

我正在使用詹金斯来构建包。我的包使用 jankins 环境变量 BUILD_ID,它提供了构建日期:https ://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-JenkinsSetEnvironmentVariables

问题是,我需要在 xml 配置文件中使用该日期,在来自模式http://www.w3.org/2001/XMLSchema的 dateTime 类型的元素中。

詹金斯使用格式

YYYY-MM-DD_hh-mm-ss

对于 BUILD_ID var,并且 dateTime 字段需要格式

YYYY-MM-DDTHH:MM:SS

(日期和时间之间用'T'代替'_',时间分隔符用':'代替'-')。

我知道有一个 jenkins 插件允许为 BUILD_ID 变量设置自定义日期格式,但我无法触摸 jenkins。是否可以编写一个“本地”脚本/钩子(本地我的意思是在我的项目范围内,而不对外部工具进行任何更改),在它从 jenkins 读取它之后转换该 BUILD_ID ?现在我在 pom 的元素中使用该行读取 BUILD_ID:

<buildinfo.timestamp>${env.BUILD_ID}</buildinfo.timestamp>
4

1 回答 1

1

有一个名为maven-timestamp-plugin的小型 maven 插件可能会对您有所帮助。它以您喜欢的格式创建时间戳并将其写入您可以访问的系统属性,类似于 Jenkins BUILD_ID

您的插件配置将如下所示:

<plugin>
  <groupId>com.keyboardsamurais.maven</groupId>
  <artifactId>maven-timestamp-plugin</artifactId>
  <version>1.0</version>
  <configuration>
    <propertyName>timestamp</propertyName>
    <timestampPattern>yyyy-MM-ddTHH:mm:ss</timestampPattern>
  </configuration>
  <executions>
    <execution>
     <goals>
      <goal>create</goal>
     </goals>
    </execution>
  </executions>
</plugin>

...在您的 XML 文件中,您可以编写<buildinfo.timestamp>${timestamp}</buildinfo.timestamp>

于 2013-02-03T14:22:55.797 回答