### Question:
DefaultMojoAnnotationsScanner extends AbstractLogEnabled implements MojoAnnotationsScanner { protected Map<String, MojoAnnotatedClass> scanArchive( File archiveFile, Artifact artifact, boolean excludeMojo ) throws IOException, ExtractionException { Map<String, MojoAnnotatedClass> mojoAnnotatedClasses = new HashMap<>(); String zipEntryName = null; try ( ZipInputStream archiveStream = new ZipInputStream( new FileInputStream( archiveFile ) ) ) { String archiveFilename = archiveFile.getAbsolutePath(); for ( ZipEntry zipEntry = archiveStream.getNextEntry(); zipEntry != null; zipEntry = archiveStream.getNextEntry() ) { zipEntryName = zipEntry.getName(); if ( !SCANNABLE_CLASS.matcher( zipEntryName ).matches() ) { continue; } analyzeClassStream( mojoAnnotatedClasses, archiveStream, artifact, excludeMojo, archiveFilename, zipEntry.getName() ); } } catch ( IllegalArgumentException e ) { getLogger().error( "Failed to analyze " + archiveFile.getAbsolutePath() + "!/" + zipEntryName ); throw e; } return mojoAnnotatedClasses; }  Map<String, MojoAnnotatedClass> scan( MojoAnnotationsScannerRequest request );  }### Answer:
@Test public void testSkipModuleInfoClassInArchive() throws Exception { scanner.scanArchive( new File( "target/test-classes/java9-module.jar"), null, false ); }
@Test public void testJava8Annotations() throws Exception { scanner.enableLogging( mock( Logger.class ) ); scanner.scanArchive( new File( "target/test-classes/java8-annotations.jar"), null, false ); }