in src/main/java/org/apache/nifi/utils/NarDependencyUtils.java [35:54]
public static Map<String, ArtifactHandler> createNarHandlerMap(ProjectBuildingRequest narRequest, MavenProject project, ProjectBuilder projectBuilder) throws ProjectBuildingException {
final Artifact projectArtifact = project.getArtifact();
final ProjectBuildingResult narResult = projectBuilder.build(projectArtifact, narRequest);
narRequest.setProject(narResult.getProject());
// get the artifact handler for excluding dependencies
final ArtifactHandler narHandler = excludesDependencies(projectArtifact);
projectArtifact.setArtifactHandler(narHandler);
// nar artifacts by nature includes dependencies, however this prevents the
// transitive dependencies from printing using tools like dependency:tree.
// here we are overriding the artifact handler for all nars so the
// dependencies can be listed. this is important because nar dependencies
// will be used as the parent classloader for this nar and seeing what
// dependencies are provided is critical.
final Map<String, ArtifactHandler> narHandlerMap = new HashMap<>();
narHandlerMap.put(NAR, narHandler);
return narHandlerMap;
}