Artem Ptushkin
Artem Ptushkin

Reputation: 1299

Gradle build fails with MalformedJsonException

After the migration from jcenter to maven-central repository, like

//from
repositories {
  jcenter()
}
//to
repositories {
  mavenCentral()
}

I got:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':my-module:compileJava'.
...
Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':my-module:compileClasspath'.
...
project :my-module > org.junit.jupiter:junit-jupiter-api:5.7.1 > org.junit:junit-bom:5.7.1
Caused by: org.gradle.internal.resolve.ModuleVersionResolveException: Could not resolve org.junit.jupiter:junit-jupiter-params:5.7.1.
Caused by: org.gradle.api.internal.artifacts.ivyservice.ivyresolve.parser.MetaDataParseException: Could not parse module metadata https://everon.jfrog.io/everon/libs-release/org/junit/jupiter/junit-jupiter-params/5.7.1/junit-jupiter-params-5.7.1.module

How to fix it?

Upvotes: 1

Views: 2464

Answers (1)

Artem Ptushkin
Artem Ptushkin

Reputation: 1299

After the change, Gradle misused the metadata file and the solution would be to explicitly declare artifacts metadata sources:

repositories {
  maven {
    metadataSources {
      mavenPom() //use maven pom
      artifact() //look directly for the artifact
      ignoreGradleMetadataRedirection() //it fixes the issue actually
    }
  }
}

See https://docs.gradle.org/current/userguide/dependency_management.html#sec:supported_metadata_sources for more

Upvotes: 3

Related Questions