Here’s my original code, that works on older mechanisms
package com.xenoterracide.gradle.plugin;
import io.spring.gradle.dependencymanagement.DependencyManagementPlugin;
import io.spring.gradle.dependencymanagement.dsl.DependencyManagementExtension;
import org.gradle.api.Plugin;
import org.gradle.api.Project;
import java.util.concurrent.TimeUnit;
import static com.xenoterracide.gradle.plugin.DepConstants.APT;
import static com.xenoterracide.gradle.plugin.DepConstants.COMPILE;
import static com.xenoterracide.gradle.plugin.DepConstants.IMPL;
import static com.xenoterracide.gradle.plugin.DepConstants.LATEST;
import static com.xenoterracide.gradle.plugin.DepConstants.TEST_COMPILE;
import static com.xenoterracide.gradle.plugin.DepConstants.TEST_IMPL;
import static com.xenoterracide.gradle.plugin.Dependencies.AssertJ;
import static com.xenoterracide.gradle.plugin.Dependencies.D;
import static com.xenoterracide.gradle.plugin.Dependencies.EqualsVerifier;
public class DependencyManagement implements Plugin<Project> {
@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.6.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.+" );
} );
This is my new code for handling dep management
package com.xenoterracide.gradle.plugin;
import com.xenoterracide.gradle.allignmentrules.ImmutablesAllignmentRule;
import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.api.artifacts.dsl.DependencyHandler;
import java.util.concurrent.TimeUnit;
import static com.xenoterracide.gradle.plugin.DepConstants.IMPL;
import static com.xenoterracide.gradle.plugin.DepConstants.LATEST;
import static com.xenoterracide.gradle.plugin.DepConstants.TEST_IMPL;
import static com.xenoterracide.gradle.plugin.Dependencies.D;
import static com.xenoterracide.gradle.plugin.Dependencies.EqualsVerifier;
public class DependencyManagement implements Plugin<Project> {
@Override
public void apply( Project project ) {
project.getConfigurations().all( conf -> {
conf.resolutionStrategy( rs -> rs.cacheChangingModulesFor( 1, TimeUnit.MINUTES ) );
} );
DependencyHandler deps = project.getDependencies();
deps.getComponents().all( ImmutablesAllignmentRule.class );
deps.constraints( dch -> {
dch.add( TEST_IMPL, String.join( D, EqualsVerifier.G, EqualsVerifier.A, EqualsVerifier.V ) );
dch.add( IMPL, "com.google.guava:guava:" + LATEST );
} );
deps.enforcedPlatform( "org.springframework.boot:spring-boot-starter-parent:2.1.+" );
}
}
package com.xenoterracide.gradle.allignmentrules;
import org.gradle.api.artifacts.ComponentMetadataContext;
import org.gradle.api.artifacts.ComponentMetadataDetails;
import org.gradle.api.artifacts.ComponentMetadataRule;
import java.util.Objects;
public class ImmutablesAllignmentRule implements ComponentMetadataRule {
@Override
public void execute( ComponentMetadataContext ctx ) {
ComponentMetadataDetails details = ctx.getDetails();
String group = "org.immutables";
details.allVariants( vm -> {
if ( Objects.equals( details.getId().getGroup(), group ) ) {
details.belongsTo( group + ":platform:2.+", true );
}
} );
}
}
test runs however show a failure to resolve org.immutables:value
or org.springframework.boot:spring-boot-starter-parent
.
How do I need to change my code to DWIM?