我正在使用构建脚本中显示的属性文件任务:
<target name="build-brand" depends="-init" description="Adds version information to branding files.">
<propertyfile file="${basedir}/branding/core/core.jar/org/netbeans/core/startup/Bundle.properties">
<entry key="currentVersion" value="${app.windowtitle} ${app.version}" />
</propertyfile>
</target>
该任务按预期工作,但每次构建项目时,Bundle.properties文件的日期注释行都会使用当前时间戳更新。即使app.version变量没有改变也会发生这种情况,并导致对仅包含以下差异的版本控制进行不必要的提交:
--- Base (BASE)
+++ Locally Modified (Based On LOCAL)
@@ -1,4 +1,4 @@
-#Thu, 22 Jul 2010 15:05:24 -0400
+#Tue, 10 Aug 2010 13:38:27 -0400
如何阻止在.properties文件中添加或删除此日期注释?我在propertyfile嵌套的entry元素中考虑了删除操作,但是需要一个键值。
答案 0 :(得分:5)
这不是一个很好的解决方案,但如何一起删除评论呢?
<target name="build-brand" depends="-init" description="Adds version information to branding files.">
<propertyfile file="${basedir}/branding/core/core.jar/org/netbeans/core/startup/Bundle.properties">
<entry key="currentVersion" value="${app.windowtitle} ${app.version}" />
</propertyfile>
<replaceregexp file="${basedir}/branding/core/core.jar/org/netbeans/core/startup/Bundle.properties" match="^#.*\n" replace=""/>
</target>
答案 1 :(得分:1)
如果您需要在文件中放置一个属性,只需使用echo:
<echo output="somefiles.properties">lastmodified=${lastmodified}</echo>
答案 2 :(得分:0)
尝试:<propertyfile file="..." comment="">
编辑:哪些可能无效:(。看起来罪魁祸首实际上是Properties.store(OutputStream, String)
:
接下来,注释行始终是 写的,由ASCII组成# 字符,当前日期和时间 (好像是由toString方法生成的 当前时间的日期)和a 行生成的行分隔符 作家。