我使用jenkins构建包。我的包使用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。是否可以写一个" local"脚本/钩子(通过本地我的意思是在我的项目的范围内,没有任何外部工具的更改),它将从jenkins读取后转换该BUILD_ID?现在我用pom的元素中的那一行读取BUILD_ID:
<buildinfo.timestamp>${env.BUILD_ID}</buildinfo.timestamp>
答案 0 :(得分: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>