ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marina <>
Subject Re: outofdate task returns TRUE if no target files exist??
Date Wed, 21 Jul 2010 12:52:51 GMT
David, Peter,

thanks for your responses.

Peter - thanks for the suggestion - I'll try it out.Although in my situation, I 
really do not have any files in the myapp.ear directory, as I remove all content 
before re-building the EAR. I guess I could intentionally leave something 

David, sorry - you are absolutely right, I've mistyped the result :)
It is indeed returns FALSE (though I would expect TRUE), and as a result the 
task in the <sequential> is not being run.

I've looked at the 'uptodate', and my issue with using it is that it does not 
support multiple target files. If I had an archived EAR (just one myapp.ear 
file) - it would work fine, but since I'm deploying in the exploded format, I 
have the myapp.ear/ directory wit all content exploded as well... 

I was looking at the <mapper> task - but I'm not sure how I could map, say, a 
JAR file name to a directory name and all content under it. What I mean is that 
I have a myEjb1.jar (which is one archive file, with the ejb content), and then 
I have a myapp.ear/myEjb1.jar/ directory with the corresponding content .

I see your point about the ant-contrib being unmaintained right now though - so 
I'll try to stay away from it and use core Ant tasks instead.

thanks for your response,

From: Peter Reilly <>
To: Ant Users List <>
Sent: Wed, July 21, 2010 5:16:42 AM
Subject: Re: outofdate task returns TRUE if no target files exist??

The problem is that you are specifying no targetfiles.

In this case, I normally pick a scapegoat file that I know should
always be present. - ${destination}/myapp.ear/WEB-INF/web.xml
or some such file.

               <fileset dir="${destination}/myapp.ear" includes="**/*"/>
               <path path="${destination}/myapp.ear/WEB-INF/web.xml"/>

I suppose that one could change <outofdate> to always trigger if
there are no <targetfiles> as that is a common use case.


On Tue, Jul 20, 2010 at 8:35 PM, Marina <> wrote:
> Hi, I wanted to see if the behavior I see when using the ant-contrib's
> 'outofdate' task is a correct one. Basically, I'm trying to determine if
> generated EAR archive (in the exploded form) has any out of date files in
> respect to the source directories, and re-copy those files if so.
> Here is my task:
>      <target name="check.ear.exploded.uptodate" >
>        <outofdate property="ear.not.uptodate">
>              <sourcefiles>
>                  <fileset dir="${build.jars}"
>                    includes="*.jar"/>
>                  <fileset dir="${build.wars}"
>                    includes="*.war"/>
>                  <fileset dir="${basedir}/rsrc/deployment"
>                    includes="application.xml"/>
>              </sourcefiles>
>              <targetfiles>
>                <fileset dir="${destination}/myapp.ear" includes="**/*"/>
>              </targetfiles>
>              <sequential>
>                <echo message="exploded myapp.ear dir is not uptodate -
> rebuilding"/>
>            </sequential>
>        </outofdate>
>      </target>
> Now, if there are no files in the "${destination}/myapp.ear" directory yet 
> building for the first time after cleanup) - the outofdate task still returns
> TRUE. Needless to say, I would prefer the opposite behavior - if no target 
> exist - consider them out-of-date.
> Is this the expected behavior or am I missing something?
> Also, I hope this is the right forum to post this question to; if not - please
> let me know.
> Thanks!
> Marina

To unsubscribe, e-mail:
For additional commands, e-mail:
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message