I don't think macros were 'designed' to be overrideable, and the
message you're seing may not be specific to macros, but applies to
tasks in general (a macro defines a task on the fly kinda). The fact
that the override is still done may be yet another quirk of Ant kept
for backward compatibility reasons.

But you can define your macros in targets, and override one or more of
those targets. Targets were designed to be overriden when <import> was
introduced, and you'll get rid of the message that way.

Personnaly, I'm not fond of the idea of altering the behavior of a
task/macro, unless the 'contract' of the task/macro is somehow not
changed, which seems contradictary... --DD

On 7/5/06, Cory Riddell <[EMAIL PROTECTED]> wrote:
Our builds for release are slightly different than our internal
development builds (like we sign jars on internal builds with a dummy
test certificate vs our real certificate on shipping builds). There
are only a few places that are different and those differences are
isolated to an ant file that has overrides for a few key tasks.

It seems like a sensible thing to me and I don't understand if there
is actually a problem or not with what I am doing. Is the "Trying to
override old definition of task emptymacro" message a warning? Is it
not doing what I think it will do? The verbage "trying to override"
makes me think that something is wrong. Why isn't the message If the
message was less passive ("Overriding old definition of emptymacro" or
"Failure to override old definition of emptymacro") I wouldn't be
asking the question.

I did search for this message but never found anything that made me
comfortable just ignoring it. If you (or anybody) can shed some light,
I'd appreciate it.

Cory

On 7/5/06, Scot P. Floess <[EMAIL PROTECTED]> wrote:
> Cory:
>
> Just curious, but why do you want to override your macrodef?
>
> Scot
>
> Cory Riddell wrote:
> > I have two ant files.
> >
> > base.xml:
> >  <project name="base" basedir=".">
> >      <macrodef name="emptymacro">
> >          <sequential>
> >              <echo>In base emptymacro</echo>
> >          </sequential>
> >      </macrodef>
> >      <target name="go">
> >          <emptymacro/>
> >      </target>
> >  </project>
> >
> > deriv.xml:
> >  <project name="deriv" basedir=".">
> >      <import file="base.xml"/>
> >      <macrodef name="emptymacro">
> >          <sequential>
> >          </sequential>
> >      </macrodef>
> >  </project>
> >
> > When I do ant -f deriv.xml go I get this output:
> >  Buildfile: deriv.xml
> >  Trying to override old definition of task emptymacro
> >
> >  go:
> >
> >  BUILD SUCCESSFUL
> >  Total time: 0 seconds
> >
> > So, since it reports success, I'm guessing the "Trying to override..."
> > message is just a warning. I actually am trying to override that
> > macro. Is that a bad idea? Is there a better way to do this?
> >
> > I'm using Ant 1.6.5.
> >
> > -cr
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
> --
> Scot P. Floess
> 27 Lake Royale
> Louisburg, NC  27549
>
> 252-478-8087 (Home)
> 919-754-4592 (Work)
>
> Chief Architect JPlate  http://sourceforge.net/projects/jplate
> Chief Architect JavaPIM http://sourceforge.net/projects/javapim
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to