yyyy-MM-dd HH:mm:ss ${maven.build.timestamp}

其中timestamp就是maven打包编译的时间,但是记录的时间是UTC时间(世界标准时间),与中国相差8个时区,如果要把打包时间写到包名上则需要借助build-helper-maven-plugin插件获得本时区的时间,

我们这里是要在代码中获取该时间,因此也可以用代码来处理.

方案一.使用自定义的properties配置文件来获取到maven的打包时间

1.1 在pom.xml的build中添加如下内容,使properties能取到pom.xml中的数据

<resources>
       <resource>
           <directory>src/main/resources/</directory>
           <filtering>true</filtering>
       </resource>
</resources>

1.2 在resources下新建remote.properties文件

文件内容如下

# maven打包时间
maven.package_time=@timestamp@

@XXX@ 双@表示要去pom.xml中的参数值,XXX就是pom.xml的值

1.3 新建配置类

@Configuration
@ConfigurationProperties(prefix = "maven", ignoreUnknownFields = false)
@PropertySource(value= "classpath:config/maven.properties",encoding = "utf-8")
@Data
@Component
public class MavenProperties {
    /**maven打包时间*/
    private String package_time;

1.4 代码中使用方式

    @Resource
    private MavenProperties mavenProperties;
  @Test
    public void run() throws Exception {
        log.info("打包时间:{}",mavenProperties.getPackage_time());

maven 中的build resource 中的filtering作用

方案二.使用SpringBoot默认的application.yml配置文件来获取maven的打包时间,使用起来简单许多

2.1在application.yml文件中添加如下配置

maven:
  package_time: '@timestamp@' # maven打包时间

'@XXX@' 双@表示要去pom.xml中的参数值,XXX就是pom.xml的值

注意引号不能掉,否则会报错(yml bug导致)

2.2获取到之后代码中使用就行了

   @Value("${maven.package_time}")
   private String packageTime;
  @Test
    public void run() throws Exception {
        log.info("打包时间:{}", modifyTime(packageTime));
     * 修改时间为东8区
     * @param date
     * @return
    private String modifyTime(String date) {
        Date oldDate=null;
        try {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            oldDate = simpleDateFormat.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(oldDate);
        calendar.add(Calendar.HOUR_OF_DAY, +8);
        return DateUtil.calendarToDateStr(calendar);
                        原文链接:https://www.cnblogs.com/chengzhongyi/p/14516491.html
                                    maven打包时间戳方法总结基于Maven项目,发布需要打包,如tar.gz。web项目打成war格式包。每次打包希望自己加上时间戳,假如我的项目名是myproject,默认打包后名为myproject.war。而我希望的名字为myproject-1.0.0-20160217。方便以后对包进行查找与管理,如何实现这种效果呢?
<properties>
        <maven.build.timestamp.format>MMddHHmmss</maven.build.timestamp.format>
    </properties>
在build中定义包名的格式
<build>
        <finalName> ${projec
                                    在打包候,我们首先要更改父pom中的版本号,然后还要再项目中的每一个module中更改父依赖的版本号。在Maven项目开发中,我们经常需要进行打SNAPSHOT包以便其他项目能够实地使用最新代码进行联调。如果一个Maven项目中含有很多个module,那么一个一个去手动更改版本号是不是效率有点太低了呢?然后再点击Submit,你就会发现所有module的pom文件对应部分都被修改啦~点击如图所示的向上箭头,在弹出的框里填写想要生成的版本号,安装完成后在Maven的界面会变成下面这样~
	<plugin>
		<groupId>org.codehaus.mojo</groupId>
		<artifactId>build-helper-maven-plugin</artifactId>
		<executions>
今天发布项目到测试环境, 发布完成后, 一直启动不起来, 查看日志发现java.lang.OutOfMemoryError: Java heap space.
java.lang.OutOfMemoryError: Java heap space
Dumping heap to /dump/dump.hprof
Unable to create /dump/dump.hprof: File e...
                                    Bug的身世之谜今天又分享一个问题解决的故事。请看下图框起来的错误,明显就是找不到这个class嘛!下面我们按照正常人的思路去排查这个问题,既然找不到class那就先看这个依赖的jar包有没有,如果没有那就是铁证如山。但是事与愿违啊,编译后的lib目录下真的有这个包o****rder-api-2.0-SNAPSHOT.jar还是不相信,于是将order-api-2.0-SNAPSHOT.jar解压...
                                    这篇文章首先介绍了在SpringBoot中如何获得项目的编译时间版本号,并向外提供接口,然后介绍了介绍了新版maven获得时间区错误的解决方案,最后介绍了把时间戳加到包名的两种方法。SpringBoot项目获得编译时间戳和版本号,然后提供接口大概分为以下步骤:在pom文件中获取maven的编译时间戳配置pom,用maven中的属性渲染资源文件application.yml提供接口Maven中...
<?xml version="1.0" encoding="UTF-8"?>
![在这里插入图片描述](https://img-blog.csdnimg.cn/12c5e5fa50284f3c88261152aad31bb9.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0
                                    这里写自定义目录标题目标生成新的buildCode获取SVN版本号获取日期获取自增版本号更新properties文件
使用mvn install修改/config/env.properties中的buildCode 格式是
buildCode=Build1038 rev3083 @2021/12/27 16:42:15
build是自增版本号,rev是svn版本
所以一共有以下几个步骤
1、生成新的buildCode----获取SVN版本号打包时间,想办法生成一个每次打包自增的版本号
2、打包