Class DependencyRecommendationsPlugin

java.lang.Object
netflix.nebula.dependency.recommender.DependencyRecommendationsPlugin
All Implemented Interfaces:
org.gradle.api.Plugin<org.gradle.api.Project>

public class DependencyRecommendationsPlugin extends Object implements org.gradle.api.Plugin<org.gradle.api.Project>
  • Field Details

    • NEBULA_RECOMMENDER_BOM

      public static final String NEBULA_RECOMMENDER_BOM
      See Also:
    • CORE_BOM_SUPPORT_ENABLED

      public static final boolean CORE_BOM_SUPPORT_ENABLED
  • Constructor Details

    • DependencyRecommendationsPlugin

      public DependencyRecommendationsPlugin()
  • Method Details

    • apply

      public void apply(org.gradle.api.Project project)
      Specified by:
      apply in interface org.gradle.api.Plugin<org.gradle.api.Project>
    • whichStrategy

      protected String whichStrategy(RecommendationStrategy strategy)
    • enhanceDependenciesWithRecommender

      protected void enhanceDependenciesWithRecommender(org.gradle.api.Project project)
    • enhancePublicationsWithBomProducer

      protected void enhancePublicationsWithBomProducer(org.gradle.api.Project project)
    • getRecommendedVersionRecursive

      public String getRecommendedVersionRecursive(org.gradle.api.Project project, org.gradle.api.artifacts.ModuleVersionSelector mvSelector)
      Look for recommended versions in a project and each of its ancestors in order until one is found or the root is reached
      Parameters:
      project - the gradle Project
      mvSelector - the module to lookup
      Returns:
      the recommended version or null
    • getReasonsRecursive

      public Set<String> getReasonsRecursive(org.gradle.api.Project project)
      Look for recommendation reasons in a project and each of its ancestors in order until one is found or the root is reached
      Parameters:
      project - the gradle Project
      Returns:
      the recommended version or null
    • eagerlyResolveBoms

      public void eagerlyResolveBoms(org.gradle.api.Project project, RecommendationProviderContainer container)
      Eagerly resolves BOM configurations during the configuration phase to prevent configuration resolution lock conflicts in parallel builds.

      This method delegates to BomResolutionUtil.eagerlyResolveBoms(org.gradle.api.Project, netflix.nebula.dependency.recommender.provider.RecommendationProviderContainer, java.lang.String) and is provided for backward compatibility and convenience for external plugins.

      External Plugin Usage:

      
       // Get the plugin instance and container
       DependencyRecommendationsPlugin plugin = project.plugins.getPlugin(DependencyRecommendationsPlugin)
       RecommendationProviderContainer container = project.extensions.getByType(RecommendationProviderContainer)
       
       // Disable automatic resolution and add BOMs
       container.setEagerlyResolve(false)
       container.mavenBom(module: 'com.example:custom-bom:1.0.0')
       
       // Manually trigger resolution
       plugin.eagerlyResolveBoms(project, container)
       
      Parameters:
      project - the Gradle project whose BOM configurations should be resolved
      container - the recommendation provider container to check for additional BOM providers
      Since:
      12.7.0
      See Also: