当前位置: 代码网 > it编程>编程语言>Java > springboot项目启动时打印maven打包时间实现方式

springboot项目启动时打印maven打包时间实现方式

2026年01月05日 Java 我要评论
背景生产环境部署的时候,开发给的包部署后没有生效;运维说开发给的包不对,开发说运维没有部署正确;于是想着能有一种方法来减少这种错误,启动的时候把打包的时间打印出来;pom文件配置在pom文件中新增pr

背景

生产环境部署的时候,开发给的包部署后没有生效;运维说开发给的包不对,开发说运维没有部署正确;

于是想着能有一种方法来减少这种错误,启动的时候把打包的时间打印出来;

pom文件配置

在pom文件中新增properties,maven打包的时候会读取该配置:

<properties>
        <maven.build.timestamp.format>yyyy-mm-dd't'hh:mm:ssxxx</maven.build.timestamp.format>
</properties>

新增一个properties文件

在资源目录新增一个properties文件,注意这里一定是一个properties文件,不能是yaml

内容如下即可:

# maven 打包时间
build.time= @maven.build.timestamp@

用两个@符号将maven打包可识别的变量包住

配置pom文件,让打包的时候能让maven编译时替换properties文件内容

<build>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/**</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
</build>

关键配置:filtering 为true

新增一个配置类映射properties文件内字段

import lombok.getter;
import lombok.setter;
import lombok.extern.slf4j.slf4j;
import org.springframework.beans.factory.initializingbean;
import org.springframework.boot.context.properties.configurationproperties;
import org.springframework.context.annotation.propertysource;
import org.springframework.stereotype.component;

import java.time.instant;
import java.time.zoneid;
import java.time.format.datetimeformatter;
import java.util.objects;

/**
 * maven打包相关配置类
 */
@component
@propertysource(value = {"classpath:xxx.properties"}, encoding = "utf-8")
@configurationproperties(prefix = "build")
@getter
@setter
@slf4j
public class mavenbuildconfig implements initializingbean {

    /**
     * 打包时间
     */
    private string time;

    @override
    public void afterpropertiesset() throws exception {
        // utc时间
        string buildtime = this.gettime();
        if (objects.nonnull(buildtime) && buildtime.contains("t") && buildtime.endswith("z")) {
            try {
                // 自定义格式(utc 时间 → 本地时间字符串)
                instant instant = instant.parse(buildtime);
                datetimeformatter formatter = datetimeformatter.ofpattern(utils.yyyy_mm_dd_hh_mm_ss).withzone(zoneid.systemdefault());
                buildtime = formatter.format(instant);
            } catch (exception e) {
                log.error("afterpropertiesset error: {}", e.getmessage(), e);
            }
        }
        log.info("========================== maven-build-time: {} ==========================", buildtime);
    }
}

启动查看效果

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com