jacoco-gradle-testkit-plugin icon indicating copy to clipboard operation
jacoco-gradle-testkit-plugin copied to clipboard

Apply `jacoco` plugin automaticly

Open gmazzo opened this issue 4 years ago • 0 comments

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

gmazzo avatar Jul 14 '21 22:07 gmazzo