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>
> + *   &lt;deltree dir="${src.dir}"
> includes="**/*.class" /&gt;
> + * </pre>
> + * <p>To remove the entire directory build.dir, use
> the following:</p>
> + * <pre>
> + *   &lt;deltree dir="${build.dir}" /&gt;
> + * </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/

Reply via email to