Slackbot
05/13/2022, 3:56 PMMartin
05/13/2022, 4:02 PMbuildEnvironment or so because the project fails during configurationChris Lee
05/13/2022, 4:03 PMMartin
05/13/2022, 4:03 PMChris Lee
05/13/2022, 4:04 PMMartin
05/13/2022, 4:06 PMMartin
05/13/2022, 4:06 PMaused by: java.lang.NoClassDefFoundError: com/google/wireless/android/sdk/stats/GradleBuildProject$PluginType
at org.gradle.internal.reflect.ClassInspector.inspectClass(ClassInspector.java:70)
at org.gradle.internal.reflect.ClassInspector.visitGraph(ClassInspector.java:56)
at org.gradle.internal.reflect.ClassInspector.inspect(ClassInspector.java:36)
at org.gradle.internal.instantiation.generator.AbstractClassGenerator.inspectType(AbstractClassGenerator.java:272)
at org.gradle.internal.instantiation.generator.AbstractClassGenerator.generateUnderLock(AbstractClassGenerator.java:211)
... 218 more
Caused by: java.lang.ClassNotFoundException: com.google.wireless.android.sdk.stats.GradleBuildProject$PluginType
... 223 moreChris Lee
05/13/2022, 4:07 PMMartin
05/13/2022, 4:09 PMChris Lee
05/13/2022, 4:10 PMMartin
05/13/2022, 4:10 PMChris Lee
05/13/2022, 4:21 PMMartin
05/13/2022, 4:23 PMbuildscript {
dependencies {
classpath("com.apollographql.apollo3:build-logic")
}
}Chris Lee
05/13/2022, 4:25 PMopen class DistributionPlugin : Plugin<Project> {
override fun apply(project: Project) : Unit = project.run {
}
}
…define the plugin in build-logic’s build script:
plugins {
`kotlin-dsl`
}
gradlePlugin {
plugins {
create("distributionPlugin") {
id = "cloudshift.gradle.DistributionPlugin"
implementationClass = "cloudshift.gradle.distribution.DistributionPlugin"
}
}
}
…and apply where you want to expose classes available in consuming build scripts:
id("cloudshift.gradle.DistributionPlugin")Chris Lee
05/13/2022, 4:26 PMChris Lee
05/13/2022, 4:35 PMpluginManagement {
repositories {
}
}Martin
05/13/2022, 4:37 PMChris Lee
05/13/2022, 4:38 PMMartin
05/13/2022, 4:39 PMChris Lee
05/13/2022, 4:40 PMMartin
05/16/2022, 10:19 PMMartin
05/16/2022, 10:20 PMChris Lee
05/16/2022, 10:20 PMMartin
05/16/2022, 10:21 PMChris Lee
05/16/2022, 10:21 PMMartin
05/16/2022, 10:22 PMMartin
05/16/2022, 10:22 PMMartin
05/16/2022, 10:23 PMMartin
05/16/2022, 10:23 PMChris Lee
05/16/2022, 10:23 PM