Муравьиные строковые функции? - PullRequest
12 голосов
/ 16 сентября 2010

Имеет ли Ant какой-либо способ выполнения строковых манипуляций строчными / строчными / captialize / uncaptialize? Я посмотрел на PropertyRegex, но я не верю, что последние два возможны с этим. Это что-то еще?

Ответы [ 2 ]

14 голосов
/ 16 сентября 2010

Из этой темы , используйте задачу Ant <script>:

<target name="capitalize">
    <property name="foo" value="This is a normal line that doesn't say much"/>

    <!-- Using Javascript functions to convert the string -->
    <script language="javascript"> <![CDATA[

        // getting the value
        sentence = project.getProperty("foo");

        // convert to uppercase
        lowercaseValue = sentence.toLowerCase();
        uppercaseValue = sentence.toUpperCase();

        // store the result in a new property
        project.setProperty("allLowerCase",lowercaseValue);
        project.setProperty("allUpperCase",uppercaseValue);

    ]]> </script>

    <!-- Display the values -->
    <echo>allLowerCase=${allLowerCase}</echo>
    <echo>allUpperCase=${allUpperCase}</echo>
</target>

выход

D:\ant-1.8.0RC1\bin>ant capitalize
Buildfile: D:\ant-1.8.0RC1\bin\build.xml

capitalize:
     [echo] allLowerCase=this is a normal line that doesn't say much
     [echo] allUpperCase=THIS IS A NORMAL LINE THAT DOESN'T SAY MUCH

BUILD SUCCESSFUL

Обновление для комментария WarrenFaith для разделения сценария на другую цель и передачи свойства от , называемого target , обратно к вызывающей цели

Используйте antcallback из банки с муравьиным вкладом

<target name="testCallback">
    <antcallback target="capitalize" return="allUpperCase">
        <param name="param1" value="This is a normal line that doesn't say much"/>
    </antcallback>
    <echo>a = ${allUpperCase}</echo>
</target>
Задача

и capitalise использует переданный в param1, таким образом

 <target name="capitalize">

        <property name="foo" value="${param1}"/>

Конечный выход

   [echo] a = THIS IS A NORMAL LINE THAT DOESN'T SAY MUCH
0 голосов
/ 16 сентября 2010

вы можете использовать задачу script и использовать язык сценариев, поддерживаемый jsr223, такой как javascript, jruby, jython, ... для обработки строк

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