【问题标题】:Commit timestamp in Maven version using jgitver使用 jgitver 在 Maven 版本中提交时间戳
【发布时间】:2017-11-08 15:18:15
【问题描述】:

我正在评估 jgitver Maven 扩展,以根据 git 元数据计算人工制品版本。

jgitver 在名为jgitver.head_commit_datetimeproperty 中提供提交日期时间,但我不知道如何在版本字符串中包含时间戳。

谁能帮忙?

【问题讨论】:

  • 提供的答案是否解决了您的问题?

标签: java git maven continuous-deployment jgitver


【解决方案1】:

@otto.poellath,您可以使用配置属性useGitCommitTimestamp 并将其设置为 true ;它仅在 jgitver 的 non maven 模式下可用,因为它与严格的 maven SNAPSHOT 有点冲突。

因此,如果您的 .mvn/jgitver.config.xml 配置文件包含以下内容,它将起作用:

<mavenLike>false</mavenLike>
<useGitCommitTimestamp>true</useGitCommitTimestamp>

这是使用这种配置在 jgitver-maven-plugin 本身上的本地 mvn validate 的输出

H:\jgitver-maven-plugin>mvn validate
[INFO] using jgitver configuration file: H:\jgitver-maven-plugin\.mvn\jgitver.config.xml
[INFO] Scanning for projects...
[INFO] Using jgitver-maven-plugin [1.3.0] (sha1: ef8eec9f820d662e63a84f1210c377183e450cbd)
[INFO] jgitver-maven-plugin is about to change project(s) version(s)
[INFO]     fr.brouillard.oss::jgitver-maven-plugin::0 -> 1.3.1-20180710075533-integration
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building jgitver Maven Plugin 1.3.1-20180710075533-integration
[INFO] ------------------------------------------------------------------------
...

【讨论】:

    【解决方案2】:

    感谢 maven 惰性评估,您可以使用版本插件将它们提供到构建中,例如:

    mvn jgitver versions:set -DnewVersion=1.0.\${jgitver.head_commit_datetime} versions.commit
    

    试试看,然后告诉我。

    它基本上将属性传递给versions:set插件,这会将所有pom文件重写为给定的新版本。

    【讨论】:

    • 不幸的是,这个解决方案引入了 pom 更改和提交,这正是 jgitver 避免的
    • 不一定,IMO。没有理由保留新的 pom,因为它们将始终使用相同的代码和相同的命令生成回相同的数字。我用它来一直保存要快照的版本,并且只在构建时附加提交版本。
    • 但如果您没有在 SCM 中存储任何内容,那么您以后将无法重现构建
    猜你喜欢
    • 1970-01-01
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 2011-04-18
    • 2021-07-10
    • 1970-01-01
    • 2022-06-28
    相关资源
    最近更新 更多