Hi, we can remove class files, it will work, we are doing the same. Would you send again clearly, if it does not work.
cheers, --- Jason Sando <[EMAIL PROTECTED]> wrote: > Committers, > > My company's current project requires the class > files in the same path as > the sources, so in order to do a 'clean' I needed to > remove the .class files > from the source tree. We also have generated .java > files, same thing. > > Let me know if there is already a way to do this. > > Thanks, > > -j > > Index: > src/main/org/apache/tools/ant/taskdefs/Deltree.java > =================================================================== > RCS file: > /home/cvspublic/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Deltree.j > ava,v > retrieving revision 1.2 > diff -u -r1.2 Deltree.java > --- > src/main/org/apache/tools/ant/taskdefs/Deltree.java > 2000/02/24 01:34:45 > 1.2 > +++ > src/main/org/apache/tools/ant/taskdefs/Deltree.java > 2000/05/04 21:16:53 > @@ -1,7 +1,7 @@ > /* > * The Apache Software License, Version 1.1 > * > - * Copyright (c) 1999 The Apache Software > Foundation. All rights > + * Copyright (c) 1999 The Apache Software > Foundation. All rights > * reserved. > * > * Redistribution and use in source and binary > forms, with or without > @@ -9,7 +9,7 @@ > * are met: > * > * 1. Redistributions of source code must retain > the above copyright > - * notice, this list of conditions and the > following disclaimer. > + * notice, this list of conditions and the > following disclaimer. > * > * 2. Redistributions in binary form must reproduce > the above copyright > * notice, this list of conditions and the > following disclaimer in > @@ -17,15 +17,15 @@ > * distribution. > * > * 3. The end-user documentation included with the > redistribution, if > - * any, must include the following > acknowlegement: > - * "This product includes software developed > by the > + * any, must include the following > acknowlegement: > + * "This product includes software developed > by the > * Apache Software Foundation > (http://www.apache.org/)." > * Alternately, this acknowlegement may appear > in the software itself, > * if and wherever such third-party > acknowlegements normally appear. > * > * 4. The names "The Jakarta Project", "Tomcat", > and "Apache Software > * Foundation" must not be used to endorse or > promote products derived > - * from this software without prior written > permission. For written > + * from this software without prior written > permission. For written > * permission, please contact [EMAIL PROTECTED] > * > * 5. Products derived from this software may not > be called "Apache" > @@ -58,45 +58,77 @@ > import java.io.*; > > /** > + * A task to delete a directory and its contents > recursively, or to delete > + * files matching the regular includes/excludes > patterns recursively. > + * <p>The <code>dir</code> attribute is required. > If there are no includes > + * or excludes specified, Deltree will remove the > specified directory and > all > + * its contents if possible. If includes and/or > excludes are present, then > only > + * files matching the given pattern will be > deleted. The delete can be > recursive > + * if the pattern specifies such.</p> > + * <p>For example, to remove all Java .class files > from the src.dir > directory > + * recursively: </p> > + * <pre> > + * <deltree dir="${src.dir}" > includes="**/*.class" /> > + * </pre> > + * <p>To remove the entire directory build.dir, use > the following:</p> > + * <pre> > + * <deltree dir="${build.dir}" /> > + * </pre> > * > - * > * @author [EMAIL PROTECTED] > */ > - > -public class Deltree extends Task { > +public class Deltree extends MatchingTask { > > private File dir; > > public void setDir(String dirName) { > dir = project.resolveFile(dirName); > } > - > - public void execute() throws BuildException { > - project.log("Deleting: " + dir.getAbsolutePath()); > > - if (dir.exists()) { > - if (!dir.isDirectory()) { > - dir.delete(); > - return; > - // String msg = "Given dir: " + > dir.getAbsolutePath() + > - // " is not a dir"; > - // throw new BuildException(msg); > + public void execute() throws BuildException { > + if (dir == null) { > + throw new BuildException("dir attribute must > be set!"); > + } > + > + // If both includeList and exludeList are empty, > delete the whole > directory. > + if (includeList.size () == 0 && excludeList.size > () == 0) { > + project.log("Deleting: " + > dir.getAbsolutePath()); > + > + if (dir.exists()) { > + if (!dir.isDirectory()) { > + dir.delete(); > + return; > + // String msg = "Given dir: " + > dir.getAbsolutePath() + > + // " is not a dir"; > + // throw new BuildException(msg); > + } > + try { > + removeDir(dir); > + } catch (IOException ioe) { > + String msg = "Unable to delete " + > dir.getAbsolutePath(); > + throw new BuildException(msg); > + } > } > - try { > - removeDir(dir); > - } catch (IOException ioe) { > - String msg = "Unable to delete " + > dir.getAbsolutePath(); > - throw new BuildException(msg); > - } > - } > + } else { > + // Else we have a pattern, delete the matching > files with dir as base > path. > + DirectoryScanner ds = this.getDirectoryScanner > (dir); > + String[] files = ds.getIncludedFiles(); > + project.log ("Deleting: " + files.length + " > files."); > + for (int i = 0; i < files.length; i++) { > + File f = new File (files[i]); > + if (!f.delete ()) { > + throw new BuildException ("Unable to delete " > + f.getAbsolutePath > ()); > + } > === message truncated === __________________________________________________ Do You Yahoo!? Send instant messages & get email alerts with Yahoo! Messenger. http://im.yahoo.com/
