ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Bodewig <bode...@apache.org>
Subject Re: macrodef with parameters to pass to java task
Date Mon, 29 May 2017 10:16:55 GMT
On 2017-05-29, Al Le wrote:

> in my ant script I'd like to define a macro (via macrodef) which would call the 'java'
task as a part of its body/implementation.

> In the java task call in the macro, I want to just specify the main class name and the
classpath. The parameters (which are usually specified via nested 'arg' elements) should be
as variable as they are in the original java task.

> How would I accomplish this?

> What I've come up with until now is:

>     <macrodef name="execMyProgram">
>         <element name="programArgs" implicit="true" description="'arg' entries for
the program, use like in the java task"/>

>         <sequential>
>             <java classname="my.class.name" classpathref="my.classpath">
>                 <programArgs/>
>             </java>
>         </sequential>
>     </macrodef>

This is the correct way to do it. "implicit=true" means any element you
nest into <execMyProgram> later will get collected as child of your
<programArgs> element and you don't need to use that element name
explicitly.

So instead of

> Then I use the macro as follows:

>     <execMyProgram>
>         <programArgs>
>             <arg value="arg1"/>
>             <arg value="arg2"/>
>         </programArgs>
>     </executeProcessMonitor>

you only have to use

    <execMyProgram>
        <arg value="arg1"/>
        <arg value="arg2"/>
    </executeProcessMonitor>

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message