Plugins & declaring an explicit or implicit dependencies

I am trying to use two plugins com.diffplug.spotless and org.jsonschema2dataclass to force a specific coding style and to generate pojos from json schemas. However, after attempting to setup the build (sample below) I end up with an error about “declaring an explicit or implicit dependency”. While I’ve seen this discussed for tasks - I’m not sure how to solve the problem for plugins? Any help would be appreciated. Sample config and error messages below.

plugins {
    id 'java'
    id 'com.diffplug.spotless' version '6.4.1'
    id 'org.jsonschema2dataclass' version '4.2.0'
}

group = 'org.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

jsonSchema2Pojo {
    sourceType = 'jsonschema'
    targetDirectoryPrefix = file("${project.buildDir}/generated/sources/annotationProcessor/java")
    targetPackage = 'org.example.generated'
    annotationStyle = 'gson'
    outputEncoding = 'UTF-8'
    targetVersion = '11'
}
spotless {
    enforceCheck false
    java {
        importOrder('java', 'javax', 'com.example', '', '\\#com.example', '\\#')
        removeUnusedImports()
    }
}
build.dependsOn 'spotlessApply'
compileJava.dependsOn('generateJsonSchema2DataClass')

> Task :generateJsonSchema2DataClass0
Execution optimizations have been disabled for task ':generateJsonSchema2DataClass0' to ensure correctness due to the following reasons:
  - Gradle detected a problem with the following location: '/Users/jeremy/Projects/git-hunter/build/generated/sources/annotationProcessor/java/main'. Reason: Task ':generateEffectiveLombokConfig' uses this output of task ':generateJsonSchema2DataClass0' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Please refer to https://docs.gradle.org/7.4.1/userguide/validation_problems.html#implicit_dependency for more details about this problem.

> Task :spotlessJava
Execution optimizations have been disabled for task ':spotlessJava' to ensure correctness due to the following reasons:
  - Gradle detected a problem with the following location: '/Users/jeremy/Projects/git-hunter/build/generated/sources/annotationProcessor/java'. Reason: Task ':spotlessJava' uses this output of task ':generateJsonSchema2DataClass0' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Please refer to https://docs.gradle.org/7.4.1/userguide/validation_problems.html#implicit_dependency for more details about this problem.
  - Gradle detected a problem with the following location: '/Users/jeremy/Projects/git-hunter/build/generated/sources/annotationProcessor/java/main'. Reason: Task ':spotlessJava' uses this output of task ':generateJsonSchema2DataClass0' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Please refer to https://docs.gradle.org/7.4.1/userguide/validation_problems.html#implicit_dependency for more details about this problem.

> Task :compileJava
Execution optimizations have been disabled for task ':compileJava' to ensure correctness due to the following reasons:
  - Gradle detected a problem with the following location: '/Users/jeremy/Projects/git-hunter/build/generated/sources/annotationProcessor/java/main'. Reason: Task ':spotlessJava' uses this output of task ':compileJava' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Please refer to https://docs.gradle.org/7.4.1/userguide/validation_problems.html#implicit_dependency for more details about this problem.
2 Likes

Hi @jeremylong

Same issue here. Have you found a solution?

Thanks in advance.

For the Spotless one, update Spotless.
The other makes little sense to me and is not reproducable with given information, as there is no Lombok in that build.

I’m experiencing the same thing. Has anyone found a solution?

I wrote the solution in the comment before yours.
If that is not solving it, you are not having the same problem.

Sorry, I was vague. I’m referring to the generateJsonSchema2DataClass0 one. Are you saying the spotless upgrade also resolved that for you?

No, I said

The other makes little sense to me and is not reproducable with given information, as there is no Lombok in that build.