V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
LosLord
V2EX  ›  Java

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

  •  
  •   LosLord · May 13, 2020 · 4015 views
    This topic created in 2182 days ago, the information mentioned may be changed or developed.

    有一个模块经常变更,总是改版本号也挺烦的,而且同事也不能保证每次 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 replies    2020-05-14 09:40:00 +08:00
    AmmeLid
        1
    AmmeLid  
       May 13, 2020
    SNAPSHOT 解决不了吗?
    BBCCBB
        2
    BBCCBB  
       May 13, 2020
    对,用 snapshot
    BBCCBB
        3
    BBCCBB  
       May 13, 2020
    Gradle 你生成时间戳有啥用呢, 手动更改版本?? 用 snapshot 不香吗
    LosLord
        4
    LosLord  
    OP
       May 13, 2020
    @AmmeLid SNAPSHOT 有的人使用习惯不好,版本号一直不变,怕内容不能及时更新


    @BBCCBB Gradle 可以编程获取当前时间啊
    jinzhongyuan
        5
    jinzhongyuan  
       May 13, 2020
    @LosLord idea 开启永远更新快照,就可以了。
    LosLord
        6
    LosLord  
    OP
       May 13, 2020
    @BBCCBB
    @jinzhongyuan

    如果需要多版本同时存在怎么办呢
    zoharSoul
        7
    zoharSoul  
       May 13, 2020
    @BBCCBB snapshot -u 才会更新.

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

    @LosLord 多版本如果版本发布后允许覆盖, 那就用多个不同的 snapshot 名称试试? 比如 1.0-snapshot. 2.0-snapshot
    guxingke
        9
    guxingke  
       May 13, 2020
    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  
       May 13, 2020
    @BBCCBB 提高了版本号可以避免这种问题.不是方便与否的事情.

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


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


    @br00k 哦哦,看起来这个是我想要的,我去看看
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2591 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 15:03 · PVG 23:03 · LAX 08:03 · JFK 11:03
    ♥ Do have faith in what you're doing.