Java 我可以使用Ant记录发布历史吗?

Java 我可以使用Ant记录发布历史吗?,java,ant,build,Java,Ant,Build,现在我有一个版本。properties文件和ant可以在我发布(java应用程序)时自动更新其内容。该版本文件的内容如下: buildDate=01-03-2012 165937 buildNum=1 buildMinor=0 buildMajor=0 现在我想将发布历史记录保存到一个文件中(可能是一个新文件,上面写着history.properties),以防我想知道哪个版本是在何时发布的 为此,我必须使ant自动执行以下操作: 从version.properties文件中读取现有信息,并将

现在我有一个版本。properties文件和ant可以在我发布(java应用程序)时自动更新其内容。该版本文件的内容如下:

buildDate=01-03-2012 165937
buildNum=1
buildMinor=0
buildMajor=0
现在我想将发布历史记录保存到一个文件中(可能是一个新文件,上面写着history.properties),以防我想知道哪个版本是在何时发布的

为此,我必须使ant自动执行以下操作:

  • version.properties文件中读取现有信息,并将其合并为一个字符串,例如:0.0.1 01-03-2012 165937
  • 将新字符串插入或追加到history.properties文件中 有谁能告诉我蚂蚁能不能做到1和2以上?如果是,如何进行

    或者与我分享你更好的解决方案


    谢谢,

    我现在找到了解决办法。我将history.properties的格式更改为

    version=date
    
    例如:

    0.0.1=01-03-2012 165937

    然后,我使用以下ant目标进行此操作:

    <target name="history" depends="init" >
            <loadproperties srcFile="${version.file}"/>
            <propertyfile
                file="${history.file}" comment="Build history info">
                <entry key="${buildMajor}.${buildMinor}.${buildNum}" type="string" value="${buildDate}"/>
            </propertyfile>
        </target>
    
    
    

    因为每次输入键都不同,所以ant追加到history.properties文件的末尾。

    使用此目标在每次生成的末尾存储版本日志:
    
    <target name="save_version_history">
      <property file="version.properties" />
      <echo file="history.log" append="true" >${buildMajor}.${buildMinor}.${buildNum} ${buildDate}
    </echo>
    </target>
    ${buildMajor}.${buildMinor}.${buildNum}${buildDate}
    

    要找到替代解决方案,为什么不试试


    它通过生成包含指定发布信息的Java类文件来工作。这个类可以在运行时被代码的其他部分查询。甚至还有一个支持图形运行时查看器的选项。

    我喜欢你的方式。但是我必须使用“loadproperties”,这个“property”对我不起作用。你介意告诉我为什么吗?我只是好奇loadproperties在哪些方面更适合您。还有一件事,当使用记事本打开时,结果是一行很长,但当使用其他编辑器打开时,结果是不同的行。是否有写入文件的方法始终显示不同的行?如果不使用loadproperties,则version.properties文件中的信息将不可用。当我尝试我的解决方案时,我注意到了这一点。若“记事本”指的是windows记事本,那个么您需要使用CRLF作为行尾。似乎只使用了LF。如果你有记事本+,你可以用它来检查这个。尝试使用${line.separator}而不是我在echo中使用的新行。