public MavenBomRecommendationProvider mavenBom(Map<String, ?> args) { Object dependencyNotation = args.get("module"); Object isEnforced = args.get("enforced"); if(dependencyNotation == null) { throw new IllegalArgumentException("Module may not be null"); } if (!CORE_BOM_SUPPORT_ENABLED) { if (Map.class.isAssignableFrom(dependencyNotation.getClass())) { ((Map) dependencyNotation).put("ext", "pom"); } else if (!dependencyNotation.toString().endsWith("@pom")) { dependencyNotation = dependencyNotation.toString() + "@pom"; } project.getDependencies().add(DependencyRecommendationsPlugin.NEBULA_RECOMMENDER_BOM, dependencyNotation); } else { Dependency platform; if (isEnforced != null && Boolean.valueOf(isEnforced.toString())) { platform = project.getDependencies().enforcedPlatform(dependencyNotation); } else platform = project.getDependencies().platform(dependencyNotation); project.getDependencies().add(DependencyRecommendationsPlugin.NEBULA_RECOMMENDER_BOM, platform); } return mavenBomProvider; }
@Override public void apply( Project project ) { log.info( "starting plugin {} for: {}", this.getClass().getSimpleName(), project.getName() ); project.getConfigurations().all( conf -> { conf.resolutionStrategy( rs -> rs.cacheChangingModulesFor( 1, TimeUnit.MINUTES ) ); } ); DependencyHandler deps = project.getDependencies(); deps.components( cmh -> cmh.all( ImmutablesAllignmentRule.class ) ); deps.components( cmh -> cmh.all( KotlinAllignmentRule.class ) ); scopes.forEach( scope -> deps.add( scope, deps.enforcedPlatform( platform ) ) ); deps.constraints( dch -> { scopes.forEach( scope -> { Stream.of( "value", "builder" ).forEach( artifact -> dch.add( scope, immutables( artifact ) ) ); } ); dch.add( TEST_IMPL, String.join( D, EqualsVerifier.G, EqualsVerifier.A, EqualsVerifier.V ) ); dch.add( IMPL, "com.google.guava:guava:" + LATEST ); } ); } }
@Override public void apply( Project project ) { log.info( "starting plugin {} for: {}", this.getClass().getSimpleName(), project.getName() ); project.getConfigurations().all( conf -> { conf.resolutionStrategy( rs -> rs.cacheChangingModulesFor( 1, TimeUnit.MINUTES ) ); } ); DependencyHandler deps = project.getDependencies(); deps.components( cmh -> cmh.all( ImmutablesAllignmentRule.class ) ); deps.components( cmh -> cmh.all( KotlinAllignmentRule.class ) ); scopes.forEach( scope -> deps.add( scope, deps.enforcedPlatform( platform ) ) ); deps.constraints( dch -> { scopes.forEach( scope -> { Stream.of( "value", "builder" ).forEach( artifact -> dch.add( scope, immutables( artifact ) ) ); } ); dch.add( TEST_IMPL, "nl.jqno.equalsverifier:equalsverifier:3.+" ); dch.add( IMPL, "com.google.guava:guava:" + LATEST ); } ); }