V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LosLord
V2EX  ›  Java

Maven 如何实现动态时间戳版本号

  •  
  •   LosLord · 2020-05-13 13:53:07 +08:00 · 3354 次点击
    这是一个创建于 1689 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有一个模块经常变更,总是改版本号也挺烦的,而且同事也不能保证每次 deploy 主动更改版本号,所以希望能够有个方便的方法直接 deploy 的时候使用时间戳作为版本号,以下是我的做法:

    <properties>
        <maven.build.timestamp.format>yyyyMMdd-HHmm</maven.build.timestamp.format>
    </properties>
    <version>${maven.build.timestamp}</version>
    

    这样虽然可以打出来动态时间戳的包,但是这样做 Maven 是给 warning 的,而且看 jar 包里面的 pom 文件,version 也是"${maven.build.timestamp}"字符串,请问有什么办法吗?


    PS:好想用 Gradle 啊,Gradle 我管他三七二十一,一把梭搞定,但是不让用

    12 条回复    2020-05-14 09:40:00 +08:00
    AmmeLid
        1
    AmmeLid  
       2020-05-13 14:02:17 +08:00
    SNAPSHOT 解决不了吗?
    BBCCBB
        2
    BBCCBB  
       2020-05-13 14:04:45 +08:00
    对,用 snapshot
    BBCCBB
        3
    BBCCBB  
       2020-05-13 14:06:08 +08:00
    Gradle 你生成时间戳有啥用呢, 手动更改版本?? 用 snapshot 不香吗
    LosLord
        4
    LosLord  
    OP
       2020-05-13 14:30:23 +08:00
    @AmmeLid SNAPSHOT 有的人使用习惯不好,版本号一直不变,怕内容不能及时更新


    @BBCCBB Gradle 可以编程获取当前时间啊
    jinzhongyuan
        5
    jinzhongyuan  
       2020-05-13 14:47:20 +08:00
    @LosLord idea 开启永远更新快照,就可以了。
    LosLord
        6
    LosLord  
    OP
       2020-05-13 16:25:32 +08:00
    @BBCCBB
    @jinzhongyuan

    如果需要多版本同时存在怎么办呢
    zoharSoul
        7
    zoharSoul  
       2020-05-13 16:35:29 +08:00
    @BBCCBB snapshot -u 才会更新.

    不能保证大家都记得更新的时候加这个
    BBCCBB
        8
    BBCCBB  
       2020-05-13 17:47:53 +08:00
    @zoharSoul 要么 idea 勾选更新 snapshot, 要么每次变动都改版本号, 你选择哪个?

    @LosLord 多版本如果版本发布后允许覆盖, 那就用多个不同的 snapshot 名称试试? 比如 1.0-snapshot. 2.0-snapshot
    guxingke
        9
    guxingke  
       2020-05-13 17:55:30 +08:00
    version.sh

    ```bash
    #!/usr/bin/env bash
    version=$(date +%y%m%d.%H%M)
    echo $version
    mvn -q versions:set -DnewVersion=$version
    mvn -q versions:commit
    ```

    deploy 前执行 version.sh 即可。
    zoharSoul
        10
    zoharSoul  
       2020-05-13 18:29:13 +08:00
    @BBCCBB 提高了版本号可以避免这种问题.不是方便与否的事情.

    再说说的是 maven 没这个功能,而不是是否需要这个功能....
    br00k
        11
    br00k  
       2020-05-13 21:24:45 +08:00   ❤️ 1
    最近刚弄了这个。可以看下: http://maven.apache.org/maven-ci-friendly.html
    LosLord
        12
    LosLord  
    OP
       2020-05-14 09:40:00 +08:00
    @BBCCBB 1.0-snapshot. 2.0-snapshot 这种还是要手动改版本号啊,我想弄的就是不手动改


    @guxingke 脚本这种形式也不是没想过,总不能让别人每次都执行一下这个脚本


    @br00k 哦哦,看起来这个是我想要的,我去看看
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5316 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 07:41 · PVG 15:41 · LAX 23:41 · JFK 02:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.