ANT: установить свойство с помощью loadfile, если найден определенный многострочный шаблон - PullRequest
0 голосов
/ 28 ноября 2011

У меня есть файл исходного кода, который содержит, среди прочего, следующие строки:

   public boolean isBetaVersion() {
      return true;
   }

Я пытаюсь прочитать этот файл в ANT и установить свойство в зависимости от того, возвращает ли вышеуказанный метод true или что-то еще:

<loadfile srcfile="path/to/MyFile.java" property="isBetaBuild">
   <filterchain>
      <striplinebreaks/>
      <linecontainsregexp>
          <regexp pattern=".*\sisBetaVersion()\s\{\sreturn\strue.*"/>
      </linecontainsregexp>
   </filterchain>
</loadfile>

но это никогда не совпадает (к сожалению, я полный регулярный пользователь). У кого-нибудь есть идея, что может быть не так? Заранее спасибо.

1 Ответ

1 голос
/ 28 ноября 2011

Вам необходимо убрать скобки и разрешить использовать не более одного пробела. Затем, \b якоря могут быть использованы для соответствия начала и конца слов, что также полезно здесь. Я предлагаю вам попробовать это:

<regexp pattern="\bisBetaVersion\(\)\s+\{\s+return\s+true\b"/>

Вам не нужно .* вокруг регулярного выражения, поскольку вы просто ищете, содержится ли эта подстрока в исходном коде.

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