private FileTree excludeOutputDirectory(FileTree sourceTree) {
    if (sourceTree == null) {
      return null;
    }

    Spec<File> outputDirectoryFilter =
        new Spec<File>() {

          @Override
          public boolean isSatisfiedBy(File file) {
            return file.getAbsolutePath().contains(getOutputDirectory().getAbsolutePath());
          }
        };

    sourceTree = sourceTree.minus(sourceTree.filter(outputDirectoryFilter)).getAsFileTree();
    return sourceTree;
  }