Получить значение из текстового файла и заменить строковую константу в другом файле этим значением, используя скрипт ant - PullRequest
0 голосов
/ 08 декабря 2011

У меня есть файл с именем versionInfo.txt. Этот файл, помимо прочего, имеет следующий текст: «Реализация-версия: 7.5.0.1».

Мне нужно получить значение версии и скопировать это значение версии в файл Java. Файл Java будет иметь следующую переменную:

version = "@version-info@";

Мне нужно заменить @ version-info @ значением, полученным из первого файла. Мне нужно подключить этот код в существующий файл build.xml, написанный с использованием сценария ant.

Ответы [ 2 ]

4 голосов
/ 08 декабря 2011

Создайте такой файл свойств и назовите его build.properties

version.label=7.5.0.1

Тогда в вашем файле build.xml

<project basedir=".">

    <target name="replace-labels">

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

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

     </target>

</project>

Итак, ваша файловая структура должна выглядеть как

myproject
    build.properties
    build.xml
    myClass.java

Затем вы можете выполнить сборку ANT, перейдя в каталог "myproject" и выполнив

ant replace-labels

Тег replace будет искать строку "@ version-info @" в вашем файле myClass.java и заменять ее значением "7.5.0.1"

0 голосов
/ 09 декабря 2011

По второй части вашего вопроса получите информацию о версии ..: Если вам нужно прочитать версию реализации из манифеста банки, вы можете использовать macrodef, например, e.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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...