One of the verification tests for start.spring.io is failing at the moment:

[ERROR] dependencyStarterConfigurationIsCorrect{Dependency, List, List, String}[9]  Time elapsed: 2.183 s  <<< ERROR!
java.lang.RuntimeException: org.eclipse.aether.resolution.DependencyResolutionException: Failed to collect dependencies at org.springframework.boot:spring-boot-starter-hateoas:pom:2.3.0.BUILD-SNAPSHOT
    at io.spring.start.site.MetadataVerificationTests.dependencyStarterConfigurationIsCorrect(MetadataVerificationTests.java:78)
Caused by: org.eclipse.aether.resolution.DependencyResolutionException: Failed to collect dependencies at org.springframework.boot:spring-boot-starter-hateoas:pom:2.3.0.BUILD-SNAPSHOT
    at io.spring.start.site.MetadataVerificationTests.dependencyStarterConfigurationIsCorrect(MetadataVerificationTests.java:78)
Caused by: org.eclipse.aether.collection.DependencyCollectionException: Failed to collect dependencies at org.springframework.boot:spring-boot-starter-hateoas:pom:2.3.0.BUILD-SNAPSHOT
    at io.spring.start.site.MetadataVerificationTests.dependencyStarterConfigurationIsCorrect(MetadataVerificationTests.java:78)
Caused by: org.eclipse.aether.resolution.ArtifactDescriptorException: Failed to read artifact descriptor for org.springframework.boot:spring-boot-starter-hateoas:pom:2.3.0.BUILD-SNAPSHOT
    at io.spring.start.site.MetadataVerificationTests.dependencyStarterConfigurationIsCorrect(MetadataVerificationTests.java:78)
Caused by: org.apache.maven.model.building.ModelBuildingException: 
1 problem was encountered while building the effective model for org.springframework.boot:spring-boot-starter-hateoas:2.3.0.BUILD-SNAPSHOT
[ERROR] 'dependencies.dependency.version' for org.springframework.plugin:spring-plugin-core:jar is missing. @ 
    at io.spring.start.site.MetadataVerificationTests.dependencyStarterConfigurationIsCorrect(MetadataVerificationTests.java:78)

This is due to spring-boot-starter-hateoas having a dependency on org.springframework.plugin:spring-plugin-core and there being no dependency management for it. The dependency shouldn't be there any more but this change was lost in the Gradle migration. We should:

  • add something to the plugin for the starter projects that verifies that the runtime classpath can be resolved
  • check that it fails when building the HATEOAS starter
  • remove the dependency on spring-plugin-core

Comment From: wilkinsona

I'm not sure if this is possible. Gradle takes the direct dependency on org.springframework.plugin:spring-plugin-core and the transitive dependency on org.springframework.plugin:spring-plugin-core:2.0.0.RELEASE and picks 2.0.0.RELEASE. There's no resolution failure. We might be able to check that we have a version constraint for it.

Comment From: wilkinsona

I've opened https://github.com/spring-projects/spring-boot/issues/19874 to fix the starter.

Comment From: gregturn

@wilkinsona Does this ticket need to be closed given the underlying issue was resolved?

Comment From: wilkinsona

No. We'd still like to add some verification to the build so that we catch this sort of problem automatically.