2015-09-30 3 views
0

Я написал муравьиную задачу для моего автоматического развертывания.Задача ANT вызвать другую задачу на основе ввода

<target name="deployWMBComponent"> 
    <for list="${esb.ci.WMB.deployment.target.brokers}" param="brokername" delimiter=" "> 
     <sequential>    
      <for list="${esb.ci.WMB.deployment.target.egs}" param="egname" delimiter=" "> 
       <sequential>   
        <exec executable="cmd.exe" failonerror="true" logerror="true" append="true" vmlauncher="false" dir="${esb.ci.WMB.dp.home}"> 
         <arg value="/C" /> 
         <arg value="mqsiprofile.cmd &amp;&amp; mqsideployscript.bat" /> 
         <arg value="-n" /> 
         <arg value="${brokerConfigFilePath}\@{brokername}.broker" /> 
         <arg value="-e" /> 
         <arg value="@{egname}" /> 
         <arg value="-w" /> 
         <arg value="600" /> 
         <arg value="-a" /> 
         <arg value="${barLocalPath}" />               
        </exec> 
       </sequential> 
      </for> 
     </sequential> 
    </for>  
</target> 

Все свойства определены в файле свойств. Я добавляю новый параметр boolean, Default_Propagation, если его TRUE вышеупомянутый скрипт должен вызвать другую задачу ant, если FALSE приведенный выше сценарий должен выполняться напрямую.

+0

Может кто-то помочь с вышеуказанным требованием? Любая помощь будет принята с благодарностью! – user3171821

ответ

0

Сначала я отвечу на ваш вопрос: Вы хотите (если вы используете муравей> 1,8), чтобы добавить if и unless для обеих целей и имеют один зависит от другого.

<target name="deployWMBComponent" if="${default.propogation}" depends="other-thing"> 

При добавлении новой цели

<target name="other-thing" unless="${default.propogation}"> 

Рабочий пример:

<project name="foo" default="default-deploy"> 

    <target name="default-deploy" if="${default.propogation}" depends="other-deploy"> 
    <echo message="default" /> 
    </target> 

    <target name="other-deploy" unless="${default.propogation}"> 
    <echo message="other" /> 
    </target> 

</project> 

Назовите это с: ant -Ddefault.propogation=FALSE и ant -Ddefault.propogation=TRUE

Смотрите ant docs на if и unless для переменный ток omplete rundown. Еще одна вещь, о которой нужно подумать, прямо сейчас у вас есть дефолт и другая вещь. Вероятно, будет третий. то булевского будет недостаточно.

Сказав это - что вы действительно пытаетесь сделать? Как отличается разброс по умолчанию? Это разные имена (свойства) сервера? Почему бы просто не называть ни одну цель, ни другую при запуске сборки? Когда вы чувствуете, что вам нужны условные обозначения и петли в муравье, это, как правило, очень хороший знак, что вы не должны делать то, что делаете в муравье.

+0

Спасибо за вход !! Чтобы быть ясным, если default.propagation property = true, я хочу, чтобы deployWMBCкомпонент вызывал другую цель, а затем выполнил deployWMBComponent, если default.propagation = false, я хочу выполнить только deployWMBComponent. Надеюсь, теперь вы поняли. – user3171821

Смежные вопросы