Class Cleaner

java.lang.Object
org.apache.maven.plugins.clean.Cleaner

class Cleaner extends Object
Cleans directories.
  • Field Details

    • ON_WINDOWS

      private static final boolean ON_WINDOWS
    • LAST_DIRECTORY_TO_DELETE

      private static final String LAST_DIRECTORY_TO_DELETE
    • session

      private final org.apache.maven.execution.MavenSession session
      The maven session. This is typically non-null in a real run, but it can be during unit tests.
    • fastDir

      private final Path fastDir
    • fastMode

      private final String fastMode
    • verbose

      private final boolean verbose
    • log

      private org.apache.maven.plugin.logging.Log log
  • Constructor Details

    • Cleaner

      Cleaner(org.apache.maven.execution.MavenSession session, org.apache.maven.plugin.logging.Log log, boolean verbose, Path fastDir, String fastMode)
      Creates a new cleaner.
      Parameters:
      session - The Maven session to be used.
      log - The logger to use.
      verbose - Whether to perform verbose logging.
      fastDir - The explicit configured directory or to be deleted in fast mode.
      fastMode - The fast deletion mode.
  • Method Details

    • delete

      public void delete(Path basedir, Selector selector, boolean followSymlinks, boolean failOnError, boolean retryOnError) throws IOException
      Deletes the specified directories and its contents.
      Parameters:
      basedir - The directory to delete, must not be null. Non-existing directories will be silently ignored.
      selector - The selector used to determine what contents to delete, may be null to delete everything.
      followSymlinks - Whether to follow symlinks.
      failOnError - Whether to abort with an exception in case a selected file/directory could not be deleted.
      retryOnError - Whether to undertake additional delete attempts in case the first attempt failed.
      Throws:
      IOException - If a file/directory could not be deleted and failOnError is true.
    • fastDelete

      private boolean fastDelete(Path baseDir)
    • delete

      private Cleaner.Result delete(Path file, String pathname, Selector selector, boolean followSymlinks, boolean failOnError, boolean retryOnError) throws IOException
      Deletes the specified file or directory.
      Parameters:
      file - The file/directory to delete, must not be null. If followSymlinks is false, it is assumed that the parent file is canonical.
      pathname - The relative pathname of the file, using File.separatorChar, must not be null.
      selector - The selector used to determine what contents to delete, may be null to delete everything.
      followSymlinks - Whether to follow symlinks.
      failOnError - Whether to abort with an exception in case a selected file/directory could not be deleted.
      retryOnError - Whether to undertake additional delete attempts in case the first attempt failed.
      Returns:
      The result of the cleaning, never null.
      Throws:
      IOException - If a file/directory could not be deleted and failOnError is true.
    • isSymbolicLink

      private boolean isSymbolicLink(Path path) throws IOException
      Throws:
      IOException
    • delete

      private int delete(Path file, boolean failOnError, boolean retryOnError) throws IOException
      Deletes the specified file, directory. If the path denotes a symlink, only the link is removed, its target is left untouched.
      Parameters:
      file - The file/directory to delete, must not be null.
      failOnError - Whether to abort with an exception in case the file/directory could not be deleted.
      retryOnError - Whether to undertake additional delete attempts in case the first attempt failed.
      Returns:
      0 if the file was deleted, 1 otherwise.
      Throws:
      IOException - If a file/directory could not be deleted and failOnError is true.
    • delete

      private static IOException delete(Path file)