Retrieve value from text file and replace a string constant in another file with that value using ant script

倾然丶 夕夏残阳落幕 提交于 2019-12-18 09:41:28

问题


I have a file called versionInfo.txt. This file among other things has the following text: "Implementation-Version: 7.5.0.1".

I need to retrieve the version value and copy this version value to a Java file. The Java file will have the following variable:

version = "@version-info@";

I need to replace this @version-info@ with the value I retrieved from the first file. I need to do plug in this code in an existing build.xml file written using ant script.


回答1:


Create a properties file like this and name it build.properties

version.label=7.5.0.1

Then in your build.xml file

<project basedir=".">

    <target name="replace-labels">

        <property file="${basedir}/build.properties"/>

        <replace
            file="${basedir}/myClass.java"
            token="@version-info@"
            value="${version.label}" />

     </target>

</project>

So your file structure should look like

myproject
    build.properties
    build.xml
    myClass.java

Then you can execute your ANT build by changing to the "myproject" directory and executing

ant replace-labels

The replace tag will look for the string "@version-info@" in your myClass.java file and replace it with the value "7.5.0.1"




回答2:


For the second part of your question, retrieve the version info.. : If you need to read the Implementation-Version from the Manifest of a jar you may use a macrodef, f.e. :

<!-- Grep a keyvalue from Manifest -->
<macrodef name="mfgrep">
  <attribute name="jar"/>
  <attribute name="key"/>
  <attribute name="catch"/>
    <sequential>
      <loadproperties>
        <zipentry zipfile="@{jar}" name="META-INF/MANIFEST.MF"/>
      </loadproperties>
        <property name="@{catch}" value="${@{key}}"/>
    </sequential>
</macrodef>

 <mfgrep
   jar="/home/rosebud/temp/ant.jar"
   key="Implementation-Version"
   catch="foobar"
 />

<echo>$${foobar} => ${foobar}</echo>


来源:https://stackoverflow.com/questions/8433588/retrieve-value-from-text-file-and-replace-a-string-constant-in-another-file-with

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!