4号清明放假前一天,快下班的时候,一个同事让过去帮忙看个问题,觉得是个很简单的问题。背景描述:咱们的开发环境是基于osgi框架,业务包先从开发环境通过maven打包再下载这个maven标准包。问题描述:新打好的包上到另一个环境,一个字段没有初始化到数据库中。开始一看,感受就是一些注意项没配置,而后都看了下,好像都作了,可是就是没初始化进去,看下日志,就是这个字段没有执行初始化操做。看了下开发环境的代码, 没问题。想着能够远程debug,可是手头的环境没有这个版本,git切一下分支也麻烦。而后就开始排错了。
1.开发环境的代码没问题,查查字段的配置文件在不在,也在的。
2.看下maven打的包里面,配置文件里面,这个字段在不在。咦,jar包的修改时间是2018年12月31日是什么鬼,问了下他,这个时间怎么不对啊,他说为了验证个东西,须要需改时间。看来问题就是出在这了,由于我发布了几回,理论上,这个jar的修改时间应该是4月4日下午才对,可是一直没更新,看了下jar包文件里面的字段配置文件,果真没有那个字段。而后问题找到了。
前几个月,由于发布性能优化,发现maven打包的时候,clean比较耗时间,考虑到日常业务场景,不clean也没问题,而后每次打包的时候,就不clean了。package的时候,maven检测到jar时间比较新,都不会直接去package了。而后我把target文件夹删了,再从新发布下,仍是报错,此次是由于java代码写的有问题,打包直接报错了,这也就验证了我以前的猜测,打包的时候,若是目标jar包时间很新,就不会package了。修改了java语法错误,再次去发布,一切ok了,那个字段也更新进去了。java
说实话,新版环境的maven打包继续不会clean,可是我采用调用操做系统的命令删除文件夹的操做删除target,速度很快,可是有些win server啥的仍是有点问题,这个得继续优化了。git