если еще для сценария муравья - PullRequest
2 голосов
/ 12 апреля 2011

привет, у меня есть этот скрипт:

        <target name="Cleanup Snapshots" description="Cleanup TrueCM snapshots">
        <echo>Executing: ${TrueCM_App}\ssremove.exe  -h${TrueCM_Host} "${TrueCM_New_SS}"</echo>
        <exec executable="${TrueCM_App}\ssremove.exe"   failonerror="${TrueCM_Failon_Exec}">
            <arg line="-h ${TrueCM_Host}"/>
            <arg line='-f "${TrueSASE}/${Product_version}/${name}"'/>
        </exec>


    </target>

этот скрипт выполняет то, что он выполняет ssremove.exe с некоторыми параметрами, как показано.

однако, этот скрипт выше действителен, только если параметр $ {Product_version} содержит слово «Расширения», например 6.00_Extensions

Иначе, если они не содержат "Расширения", скрипт должен выглядеть следующим образом:

    <target name="Cleanup Snapshots" description="Cleanup TrueCM snapshots">
        <echo>Executing: ${TrueCM_App}\ssremove.exe  -h${TrueCM_Host} "${TrueCM_New_SS}"</echo>
        <exec executable="${TrueCM_App}\ssremove.exe"   failonerror="${TrueCM_Failon_Exec}">
            <arg line="-h ${TrueCM_Host}"/>
            <arg line='-f "${TrueSASE}/${name}"'/>
        </exec>


    </target>

поэтому мой вопрос: как мне добавить операторы if else, которые содержат в точности строку «Расширения»? или как проверить наличие слова "Расширения"?

Ответы [ 2 ]

6 голосов
/ 12 апреля 2011

Существует библиотека ant: antlib (http://ant -contrib.sourceforge.net )

, которая поддерживает операторы if / else (http://ant -contrib.sourceforge.net / tasks / tasks / index.html )

Примеры с сайта:

<if>
 <equals arg1="${foo}" arg2="bar" />
 <then>
   <echo message="The value of property foo is bar" />
 </then>
 <else>
   <echo message="The value of property foo is not bar" />
 </else>
</if>


<if>
 <equals arg1="${foo}" arg2="bar" />
 <then>
   <echo message="The value of property foo is 'bar'" />
 </then>

 <elseif>
  <equals arg1="${foo}" arg2="foo" />
  <then>
   <echo message="The value of property foo is 'foo'" />
  </then>
 </elseif>


 <else>
   <echo message="The value of property foo is not 'foo' or 'bar'" />
 </else>
</if>
1 голос
/ 12 апреля 2011

Просто чтобы наметить решение, если вы не можете добавить собственную библиотеку в сборку Ant. Обратите внимание, что вам нужна довольно свежая версия Ant (> = 1.7, я думаю).

Во-первых, вам нужно поместить результат теста в свойство (используйте условие с содержит ; см. Руководство по муравьям ). Затем вы можете использовать это свойство в exec, чтобы пропустить его, когда свойство true.

<condition property="hasExtensions">
    <contains string="${Product_version}" substring="Extensions">
</condition>

<exec ... unless="hasExtensions">
    ...
</exec>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...