Как выполнить задачу муравья для каждой строки в данном файле? - PullRequest
1 голос
/ 06 августа 2010

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

1 Ответ

2 голосов
/ 16 августа 2010

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

env.start=webserver:localhost, dataserver:localhost

тогда в моем файле ant, который обрабатывает выполнение приложения, у меня есть следующее

<target name="start-all" description="Start all processes specified in target-info.properties:env.start">
        <foreach list="${env.start}" trim="yes" param="process.and.host" target="-start-process"/>
</target>

<target name="-start-process">
        <property name="colon.separated.pattern" value="([^:]*):([^:]*)"/>
        <propertyregex property="process" input="${process.and.host}" regexp="${colon.separated.pattern}" select="\1"/>
        <propertyregex property="host" input="${process.and.host}" regexp="${colon.separated.pattern}" select="\2"/>
        <condition property="start.target" value="start-${process}" else="-start-process-ssh">
            <equals arg1="${host}" arg2="localhost" trim="yes" casesensitive="no"/>
        </condition>
        <antcall target="${start.target}"/>
</target>

$ {start.target} затем выполняется для процессов, определенных в свойстве env.start, например

<target name="start-webserver" description="Start the webserver on this machine">
        <echo>** Starting webserver **</echo>
        <run-script dir="${project.base.dir}/apache-tomcat" script="${project.base.dir}/apache-tomcat/bin/startup" spawn="yes">
            <args>
                <env key="CATALINA_HOME" value="${project.base.dir}/apache-tomcat"/>
                <env key="CATALINA_PID" value="${project.base.dir}/apache-tomcat/logs/pid_catalina"/>
            </args>
        </run-script>
</target>

<target name="start-dataserver" depends="decipher_caldb_password,check-event-seed,run-prestart-sql" description="Start the dataserver on this machine">
        <run-calypso process="dataserver" class="calypsox.apps.startup.StartNOGUI" failonerror="yes"
            args="-class com.calypso.apps.startup.StartDataServer"/>
</target>

Я могу запустить все процессы, определенные в env.start, запустив

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