Thanks Prashant for reply.

I am talking for the situation where a.java, b.java and c.java are
independent java code files.

Thanks, 

-----Original Message-----
From: Prashant Reddy [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, June 27, 2007 1:57 PM
To: Ant Users List
Subject: Re: Javac task query

No 'javac' task by itself will not delete class file whose source java
file has been deleted, and rightly so. 

I do not think you would really want other source files to *not* compile
when you have deleted a dependent source file. 

Imagine class A uses class C and you deleted class C (manually, and not
using a modern IDE). Even though the time stamp for class A did not
change, you would want to recompile both A, and C.

You could have a cleancompile target in your build.xml 

<target name="cleancompile" depends="remove.classes.dir, compile, jar"/>

The "remove.classes.dir" target would remove all the class files from
the ${dest} directory.

In the sited Phase 2, you would run the cleancompile target, instead of
simple 'jar' target. This would remove C.class along with other class
files from ${dest} directory. During the next compilation since C.java
is deleted C.class will not be generated, and you jar will not have
c.class.

Hope this helps.

-Prashant
On Wed, 2007-06-27 at 10:10 +0800, Yadav, Akshat Kumar wrote:
> Thanks Steve! It worked.
> 
> But lets say if I have executed compile target on a.java, b.java 
> ,c.java it generates a.class, b.class, c.class and then I made jar of 
> these class files. Later if I deleted c.java from source and its class

> file is present is in dest dir. And when I will make jar it will 
> contain c.class also, that I don't want to be persent in jar file as 
> its corresponding java file is deleted from source dir.
> 
> Reference:
> Phase 1:
> Source: a.java, b.java, c.java
> Dest: a.class, b.class, c.class
> Jar: JTQ.jar (contains a.class, b.class, c.class)
> 
> Phase 2 (when I deleted c.java from source dir)
> Source: a.java, b.java
> Dest: a.class, b.class, c.class
> Jar: JTQ.jar (contains a.class, b.class, c.class)
> 
> But I don't want c.class should not be presend in jar. It there any 
> option or method to counter with such situation.
> 
> Any help appreciated. If my query is not clear, then let me know...
> 
> Thanks,
> 
> -----Original Message-----
> From: Steve Loughran [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, June 26, 2007 7:04 PM
> To: Ant Users List
> Subject: Re: Javac task query
> 
> Yadav, Akshat Kumar wrote:
> >  
> > Hi Prashant,
> > 
> > I had executed ANT in verbose and debug mode and it shows
> > 
> >  [javac] HelloWorlApp.java added as HelloWorlApp.class doesn't
exist.
> > 
> > Whereas the class file exist in dest dir. I tried adding/deleting 
> > dest
> 
> > dir in classpath, but no luck in both the situation.
> > 
> > I would appreciate, If you could try this in your environment. I had

> > tried this with ANT 1.6.5/1.7 and java 1.4/1.5.
> > 
> > P.S: Other member's can also suggest me something.
> > 
> > Thanks,
> 
> could be the classname in the .java file has a different spelling or 
> case from the source file itself
> 
> ---------------------------------------------------------------------
> 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]


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

Reply via email to