in indexer-cli/src/main/java/org/apache/maven/index/cli/NexusIndexerCli.java [386:478]
private int index(final CommandLine cli, Components components)
throws IOException, UnsupportedExistingLuceneIndexException {
String indexDirectoryName = cli.getOptionValue(INDEX);
File indexFolder = new File(indexDirectoryName);
String outputDirectoryName = cli.getOptionValue(TARGET_DIR, ".");
File outputFolder = new File(outputDirectoryName);
File repositoryFolder = new File(cli.getOptionValue(REPO));
String repositoryName = cli.getOptionValue(NAME, indexFolder.getName());
List<IndexCreator> indexers = getIndexers(cli, components);
boolean createChecksums = cli.hasOption(CREATE_FILE_CHECKSUMS);
boolean createIncrementalChunks = cli.hasOption(CREATE_INCREMENTAL_CHUNKS);
boolean debug = cli.hasOption(DEBUG);
boolean quiet = cli.hasOption(QUIET);
Integer chunkCount = cli.hasOption(INCREMENTAL_CHUNK_KEEP_COUNT)
? Integer.parseInt(cli.getOptionValue(INCREMENTAL_CHUNK_KEEP_COUNT))
: null;
if (!quiet) {
System.err.printf("Repository Folder: %s\n", repositoryFolder.getAbsolutePath());
System.err.printf("Index Folder: %s\n", indexFolder.getAbsolutePath());
System.err.printf("Output Folder: %s\n", outputFolder.getAbsolutePath());
System.err.printf("Repository name: %s\n", repositoryName);
System.err.printf("Indexers: %s\n", indexers);
if (createChecksums) {
System.err.print("Will create checksum files for all published files (sha1, md5).\n");
} else {
System.err.print("Will not create checksum files.\n");
}
if (createIncrementalChunks) {
System.err.print("Will create incremental chunks for changes, along with baseline file.\n");
} else {
System.err.print("Will create baseline file.\n");
}
}
long tstart = System.currentTimeMillis();
IndexingContext context = components.indexer.addIndexingContext( //
repositoryName, // context id
repositoryName, // repository id
repositoryFolder, // repository folder
indexFolder, // index folder
null, // repositoryUrl
null, // index update url
indexers);
try {
ArtifactScanningListener listener = new IndexerListener(context, debug, quiet);
components.indexer.scan(context, listener, true);
IndexSearcher indexSearcher = context.acquireIndexSearcher();
try {
IndexPackingRequest request =
new IndexPackingRequest(context, indexSearcher.getIndexReader(), outputFolder);
request.setCreateChecksumFiles(createChecksums);
request.setCreateIncrementalChunks(createIncrementalChunks);
request.setFormats(List.of(IndexFormat.FORMAT_V1));
if (chunkCount != null) {
request.setMaxIndexChunks(chunkCount);
}
packIndex(components.packer, request, debug, quiet);
} finally {
context.releaseIndexSearcher(indexSearcher);
}
if (!quiet) {
printStats(tstart);
}
} finally {
components.indexer.removeIndexingContext(context, false);
}
return 0;
}