0

I just upgraded my projects to gradle 7 and am running into missing transitive dependencies. I tried switching my build.gradle file to use 'api' in the dependencies but that did not fix it.

projectA has a dependency on projectB and projectB has a dependency on projectC.

projectA - build.gradle

dependencies {
*implementation group: 'group-projectB', name: 'name-projectB',                         version: '1.+'*
}

projectB - build.gradle

dependencies {
api group: 'group-projectC', name: 'name-projectC', version: '1.+'
}

projectA compiles fine but has runtime errors - get a ClassNotFoundException for class from projectC

If I change the build.gradle of projectA as follows (include projectC the runtime errors go away)

dependencies {
*implementation group: 'group-projectB', name: 'name-projectB',                         version: '1.+'*
*implementation group: 'group-projectC', name: 'name-projectC',                         version: '1.+'*
}

I don't see why I need to include the projectC dependency in projectA when it is clearly defined in projectB. This was never a problem in gradle 6.

Any suggestions are appreciated. Thank You in advance.

####################### Edit to include more information

projectB:

publications {
    mavenJava(MavenPublication) {
        group = 'group-projectB'
        artifactId = 'artifact-projectB'
        artifact (file("${buildDir}/libs/${project.name}-${project.version}.jar"))
    }
}

projectC:

publications {
    mavenJava(MavenPublication) {
        group = 'group-projectC'
        artifactId = 'artifact-projectC'
        artifact (file("${buildDir}/libs/${project.name}-${project.version}.jar"))
    }
}
Girish
  • 21
  • 1
  • 5

1 Answers1

0

After looking at @Bjorn Vester's comments, I went back to look at how I was publishing projectB and projectC before my changes. I switched them back to how they were publishing and that fixed the problem. Thank You!!

publications {
    mavenJava(MavenPublication) {
    group = 'group-projectC'
    artifactId = 'artifact-projectC'
        from components.java
    }
}
Girish
  • 21
  • 1
  • 5