jacoco-gradle-testkit-plugin
jacoco-gradle-testkit-plugin copied to clipboard
Apply `jacoco` plugin automaticly
The plugins assumes jacoco was been applied before applying the plugin.
I recently faced a new issue in one of our projects:
plugins {
`kotlin-dsl`
jacoco
id("pl.droidsonroids.jacoco.testkit") version "1.0.8"
}
Fails with the error (stated at the end).
But if I do the following works just fine:
plugins {
`kotlin-dsl`
jacoco
id("pl.droidsonroids.jacoco.testkit") version "1.0.8" apply false
}
apply(plugin = "pl.droidsonroids.jacoco.testkit")
I'm actually willing to believe this is a Gradle issue (as plugins declaration order is not honored) but I think we should declare an explicit plugin dependency on jacoco by adding this to the apply method of JaCoCoTestKitPlugin :
apply(plugin = "jacoco")
Relevant stackstrace
Caused by: org.gradle.api.UnknownDomainObjectException: Extension of type 'JacocoTaskExtension' does not exist. Currently registered extension types: [ExtraPropertiesExtension]
at org.gradle.internal.extensibility.ExtensionsStorage.getHolderByType(ExtensionsStorage.java:88)
at org.gradle.internal.extensibility.ExtensionsStorage.getByType(ExtensionsStorage.java:74)
at org.gradle.internal.extensibility.DefaultConvention.getByType(DefaultConvention.java:159)
at org.gradle.internal.extensibility.DefaultConvention.getByType(DefaultConvention.java:154)
at pl.droidsonroids.gradle.jacoco.testkit.JacocoTestKitExtension$applyTo$1$jacocoTestKitPropertiesTask$1$1.transform(JacocoTestKitExtension.kt:22)
at pl.droidsonroids.gradle.jacoco.testkit.JacocoTestKitExtension$applyTo$1$jacocoTestKitPropertiesTask$1$1.transform(JacocoTestKitExtension.kt:10)
at org.gradle.api.internal.provider.TransformBackedProvider.mapValue(TransformBackedProvider.java:73)
at org.gradle.api.internal.provider.TransformBackedProvider.calculateOwnValue(TransformBackedProvider.java:65)
at org.gradle.api.internal.provider.AbstractMinimalProvider.get(AbstractMinimalProvider.java:84)
at pl.droidsonroids.gradle.jacoco.testkit.JacocoTestKitExtension$applyTo$$inlined$with$lambda$1.execute(JacocoTestKitExtension.kt:23)
at pl.droidsonroids.gradle.jacoco.testkit.JacocoTestKitExtension$applyTo$$inlined$with$lambda$1.execute(JacocoTestKitExtension.kt:10)
at org.gradle.api.internal.DefaultMutationGuard$2.execute(DefaultMutationGuard.java:44)
at org.gradle.api.internal.DefaultMutationGuard$2.execute(DefaultMutationGuard.java:44)
at org.gradle.configuration.internal.DefaultUserCodeApplicationContext$CurrentApplication$1.execute(DefaultUserCodeApplicationContext.java:112)
at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction$1.run(DefaultCollectionCallbackActionDecorator.java:95)
at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:74)
at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:74)
at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction.execute(DefaultCollectionCallbackActionDecorator.java:92)
at org.gradle.internal.ImmutableActionSet$SetWithManyActions.execute(ImmutableActionSet.java:329)
at org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:264)
at org.gradle.api.internal.DefaultNamedDomainObjectCollection.doAdd(DefaultNamedDomainObjectCollection.java:113)
at org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection.java:258)
at org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.tryCreate(DefaultNamedDomainObjectCollection.java:944)
... 227 more