@Override public void configure(Configuration configuration) { configuration.getResolutionStrategy().eachDependency(versionConfiguringAction); }
@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 execute(Configuration configuration) { configuration.getResolutionStrategy().getDependencySubstitution().all(new ReplaceDependenciesAction(projects)); } });
/** * @see me.seeber.gradle.plugin.AbstractProjectConfigPlugin#initialize() */ @Override protected void initialize() { checkGradleVersion(); ProjectContext context = new ProjectContext(getProject()); getProject().getExtensions().add("projectContext", context); RepositoryHandler repositories = getProject().getRepositories(); repositories.add(repositories.mavenLocal()); repositories.add(repositories.mavenCentral()); repositories.add(repositories.maven(r -> r.setUrl("https://plugins.gradle.org/m2"))); repositories.add(repositories.jcenter()); getProject().getConfigurations().all(c -> { c.resolutionStrategy(s -> { s.preferProjectModules(); s.cacheChangingModulesFor(0, "seconds"); }); }); }
private void executeCheckDependencyVersions(DependencyMap dependencyMap, Configuration cdvConfiguration, CheckDependencyVersionsReport report) { Set<ArtifactId> dependencyArtifactIds = dependencyMap.keySet().stream().map(DependencyKey::getArtifactId) .collect(Collectors.toSet()); for (ArtifactId dependencyArtifactId : dependencyArtifactIds) { String dependencyArtifactIdString = dependencyArtifactId.toString(); getProject().getLogger().info("Checking latest version for dependency {}...", dependencyArtifactIdString); String artifactDependencyString = dependencyArtifactIdString + ":+"; Dependency artifactDependency = getProject().getDependencies().create(artifactDependencyString); cdvConfiguration.getDependencies().add(artifactDependency); } cdvConfiguration.resolutionStrategy(resolutionStrategy -> resolutionStrategy .componentSelection(componentSelectionRules -> componentSelectionRules .all(componentSelection -> filterComponentenSelection(dependencyMap, componentSelection)))); LenientConfiguration resolvedCdvConfiguration = cdvConfiguration.getResolvedConfiguration() .getLenientConfiguration(); Map<ArtifactId, ResolvedArtifact> resolvedArtifactsMap = buildResolvedArtifactsMap( resolvedCdvConfiguration.getArtifacts()); evalDependencyVersions(dependencyMap, resolvedArtifactsMap, report); }
@Override public VariantScope create(BaseVariant v) { ConfigurationContainer configurations = project.getConfigurations(); // the actual configuration Configuration configuration = getByVariant(v.getName()); // attributes match AttributeContainer attributes = configuration.getAttributes(); attributes .attribute(ARTIFACT_TYPE, ArtifactTypeDefinition.JAR_TYPE) .attribute(BuildTypeAttr.ATTRIBUTE, project.getObjects().named(BuildTypeAttr.class, v.getBuildType().getName())) .attribute(Usage.USAGE_ATTRIBUTE, project.getObjects().named(Usage.class, Usage.JAVA_RUNTIME)); v.getProductFlavors().forEach(p -> attributes.attribute(Attribute.of(p.getDimension(), ProductFlavorAttr.class), project.getObjects().named(ProductFlavorAttr.class, p.getName()))); configuration.setDescription("Resolved configuration for capt for variant: " + v.getName()); configuration.setVisible(false); configuration.setCanBeConsumed(false); configuration.getResolutionStrategy().sortArtifacts(ResolutionStrategy.SortOrder.CONSUMER_FIRST); v.getSourceSets().stream() .map(SourceProvider::getName) .map(VariantManager::sourceSetToConfigurationName) .map(configurations::getByName) .forEach(configuration::extendsFrom); return new VariantScope(v.getName(), configuration, global); }
/** * @see me.seeber.gradle.plugin.AbstractProjectConfigPlugin#initialize() */ @Override protected void initialize() { checkGradleVersion(); ProjectContext context = new ProjectContext(getProject()); getProject().getExtensions().add("projectContext", context); RepositoryHandler repositories = getProject().getRepositories(); repositories.add(repositories.mavenLocal()); repositories.add(repositories.mavenCentral()); repositories.add(repositories.maven(r -> r.setUrl("https://plugins.gradle.org/m2"))); repositories.add(repositories.jcenter()); getProject().getConfigurations().all(c -> { c.resolutionStrategy(s -> { s.preferProjectModules(); s.cacheChangingModulesFor(0, "seconds"); }); }); }
@Override public void execute(Configuration configuration) { configuration.getResolutionStrategy().eachDependency(new VersionResolverDependencyResolveDetails(project, configuration, aetherPlugin)); } }
@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 ); } ); }
@Override public void execute(Configuration configuration) { configuration.getResolutionStrategy().getDependencySubstitution().all(new ReplaceDependenciesAction(projects)); } });
public void useNativesForRunningPlatform() { project.getConfigurations().all(config -> { config.getResolutionStrategy().eachDependency(details -> { ModuleVersionSelector req = details.getRequested(); if (req.getName().contains($_OSGI_PLATFORM)) { String running = SwtPlatform.getRunning().toString(); details.useTarget(req.getGroup() + ":" + req.getName().replace($_OSGI_PLATFORM, running) + ":" + req.getVersion()); } }); }); }
@Override public void apply( Project project ) { project.getConfigurations().all( conf -> { conf.resolutionStrategy( rs -> rs.cacheChangingModulesFor( 1, TimeUnit.MINUTES ) ); } ); project.getPluginManager().apply( DependencyManagementPlugin.class ); project.getExtensions().configure( DependencyManagementExtension.class, ext -> { ext.imports( handler -> { handler.mavenBom( "org.springframework.boot:spring-boot-starter-parent:2.0.4.RELEASE" ); } ); } ); project.getDependencies().constraints( dch -> { dch.add( TEST_IMPL, String.join( D, AssertJ.G, AssertJ.A, AssertJ.V ) ); dch.add( TEST_IMPL, String.join( D, EqualsVerifier.G, EqualsVerifier.A, EqualsVerifier.V ) ); dch.add( COMPILE, "org.immutables:value:2.+" ); dch.add( IMPL, "com.google.guava:guava:" + LATEST ); dch.add( APT, "org.immutables:value:2.+" ); dch.add( APT, "org.immutables:builder:2.+" ); dch.add( TEST_COMPILE, "org.immutables:value:2.+" ); } ); } }
configuration.getResolutionStrategy().eachDependency(versionConfiguringAction);
.forEach(configuration -> configuration.getResolutionStrategy().eachDependency(dependencyResolveDetails));
.forEach(configuration -> configuration.getResolutionStrategy().eachDependency(dependencyResolveDetails));
private static void useSuffixedVersions(final Configuration groupDeps, final XRepoConfiguration config, final Project project) { groupDeps.getResolutionStrategy().eachDependency(dependency -> { if (isInSameGroup(dependency, project) && !versionEndsWith(dependency, config.getVersionSuffix())) { debug(project, "Will look for version suffixed {} for {}:{}:{}", config.getVersionSuffix(), dependency.getRequested().getGroup(), dependency.getRequested().getName(), dependency.getRequested().getVersion()); dependency.useVersion(suffixed(dependency, config.getVersionSuffix())); } }); }
private static void overwriteDependencies(final Configuration conf, final DependencyOverwrites dependencyOverwrites, final XRepoConfiguration config, final Project project) { conf.getResolutionStrategy().eachDependency(dependency -> { if (isInSameGroup(dependency, project)) { final String overwrittenVersion = suffixed(dependency, config.getVersionSuffix()); if (dependencyOverwrites.contains(dependency, overwrittenVersion)) { info(project, "Using overwritten dependency {}:{}:{}", dependency.getRequested().getGroup(), dependency.getRequested().getName(), overwrittenVersion); dependency.useVersion(overwrittenVersion); } else { final String fallbackSuffix = config.getFallbackSuffix(); if (!fallbackSuffix.isEmpty() && !versionEndsWith(dependency, config.getVersionSuffix()) && !versionEndsWith(dependency, fallbackSuffix)) { final String fallbackVersion = suffixed(dependency, fallbackSuffix); info(project, "Using fallback dependency {}:{}:{}", dependency.getRequested().getGroup(), dependency.getRequested().getName(), fallbackVersion); dependency.useVersion(fallbackVersion); } } } }); }