муравей: как сравнить содержимое двух файлов - PullRequest
9 голосов
/ 08 июня 2011

Я хочу сравнить содержимое двух файлов (скажем, file1.txt, file2.txt), используя ANT.

, если содержимое файлов одинаковое, тогда для некоторого 'свойства' должно быть установлено значение true, если содержимоене то же самое, тогда он должен установить «свойство» как false.

Может кто-нибудь предложить мне любую задачу ANT, которая может сделать это.

Заранее спасибо.

Ответы [ 2 ]

11 голосов
/ 08 июня 2011

Вы можете использовать что-то вроде:

<condition property="property" value="true">
  <filesmatch file1="file1"
              file2="file2"/>
</condition>

Это установит свойство, только если файлы совпадают.Затем вы можете проверить свойство, используя

<target name="foo" if="property">
...
</target>

Это доступно в ant, без дополнительной зависимости, см. здесь для других условий.

0 голосов
/ 19 июня 2015

Я нахожусь в той же ситуации, чтобы сравнить два файла и переключиться на разные цели в зависимости от совпадения файлов или несовпадения файлов ...

Вот код:

<project name="prospector" basedir="../" default="main">

<!-- set global properties for this build -->
<property name="oldVersion" value="/code/temp/project/application/configs/version.ini"></property>
<property name="newVersion" value="/var/www/html/prospector/application/configs/version.ini"></property>

<target name="main" depends="prepare, runWithoutDeployment, startDeployment">
    <echo message="version match ${matchingVersions}"></echo>
    <echo message="version mismatch ${nonMatchingVersion}"></echo>
</target>

<target name="prepare">

    <!-- gets true, if files are matching -->
    <condition property="matchingVersions" value="true" else="false">
        <filesmatch file1="${oldVersion}" file2="${newVersion}" textfile="true"/>
    </condition>

    <!-- gets true, if files are mismatching -->
    <condition property="nonMatchingVersion" value="true" else="false">
        <not>
            <filesmatch file1="${oldVersion}" file2="${newVersion}" textfile="true"/>
        </not>
    </condition>

</target>

<!-- does not get into it.... -->
<target name="startDeployment" if="nonMatchingVersions">
    <echo message="Version has changed, update gets started..."></echo>
</target>

<target name="runWithoutDeployment" if="matchingVersions">
    <echo message="Version equals, no need for an update..."></echo>
</target>

Свойства верны и меняются при изменении содержимого файла.задача для nonMatchingVersions никогда не запускается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...