MavenDomPlugin (@NotNull final MavenDomPlugin plugin) { final String artifactId = plugin.getArtifactId().getStringValue(); final String groupId = plugin.getGroupId().getStringValue(); if (artifactId == null) return null; final MavenDomProjectModel model = plugin.getParentOfType(MavenDomProjectModel.class, false); if (model == null) return null; SearchProcessor<MavenDomPlugin, MavenDomPlugins> processor = new SearchProcessor<>() { @Override protected MavenDomPlugin find(MavenDomPlugins mavenDomPlugins) { if (model.equals(mavenDomPlugins.getParentOfType(MavenDomProjectModel.class, true))) { if (plugin.getParentOfType(MavenDomPluginManagement.class, false) != null) { return null; } } for (MavenDomPlugin domPlugin : mavenDomPlugins.getPlugins()) { if (MavenPluginDomUtil.isPlugin(domPlugin, groupId, artifactId)) { return domPlugin; } } return null; } }; Function<MavenDomProjectModelBase, MavenDomPlugins> domProfileFunction = mavenDomProfile -> mavenDomProfile.getBuild().getPluginManagement().getPlugins(); process(model, processor, model.getManager().getProject(), domProfileFunction, domProfileFunction); return processor.myResult; }