如何访问资源过滤的maven.build.timestamp
我正在使用maven 3.0.4,并希望使我的应用程序可以访问生成时间戳。 为此,我在.properties
文件中放置一个占位符,并让mavenfilter构build。 虽然这对${project.version}
正常工作,但${maven.build.timestamp}
在过滤时不会被replace。
该属性似乎在构build上可用 – 我可以使用它来修改工件名称:
<finalName>${project.artifactId}-${maven.build.timestamp}</finalName>
那么为什么它不可用于资源过滤? 而且,更重要的是,我该如何使其可以访问?
我发现了这篇文章 ,解释了由于maven中的一个bug ,构build时间戳不会被传播到filter。 解决方法是将时间戳包装在另一个属性中:
<properties> <timestamp>${maven.build.timestamp}</timestamp> <maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format> </properties>
然后过滤按预期工作
buildTimestamp=${timestamp}
为了丰富别人的Stackoverflow内容,就像我一样,发现这个post是一种解决${maven.build.timestamp}
的“问题”的方法。 这不是一个maven bug,而是一个m2e的预期行为,在这篇文章中可以看到。
因此,我相信我们不能期望解决scheme能够“纠正”,因为据我所知,纠正涉及到概念问题。
在我的情况下,我所做的就是使用插件( buildnumber-maven-plugin
),如其他文章中所述 。