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
    • force

      private final boolean force
      Whether to force the deletion of read-only files. Note that on Linux, Files.delete(Path) and Files.deleteIfExists(Path) delete read-only files but throw AccessDeniedException if the directory containing the file is read-only.
  • Constructor Details

    • Cleaner

      Cleaner(org.apache.maven.execution.MavenSession session, org.apache.maven.plugin.logging.Log log, boolean verbose, Path fastDir, String fastMode, boolean force)
      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.
      force - whether to force the deletion of read-only files
  • 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
    • setWritable

      private static Path setWritable(Path file) throws IOException
      Makes the given file or directory writable. If the file is already writable, then this method tries to make the parent directory writable.
      Parameters:
      file - the path to the file or directory to make writable, or null if none
      Returns:
      the root path which has been made writable, or null if none
      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)