scoverage / gradle-scoverage

A plugin to enable the use of Scoverage in a gradle Scala project
Apache License 2.0
53 stars 38 forks source link

Gradle Plugin fails with Scala 2.13.x in Multi-Project Builds #182

Open rhass opened 2 years ago

rhass commented 2 years ago

I originally filed this against the scalac-scoverage-plugin. As a result they have added a unit test for the .aggregate() method which this plugin calls, but it seems to pass suggesting the problem may be exist within the Gradle plugin itself.

Running aggregateScoverage with Scala 2.13 results in the following stack trace:

Caused by: java.lang.NoSuchMethodError: 'java.lang.Object scala.Predef$.refArrayOps(java.lang.Object[])'    
at scoverage.report.CoverageAggregator$.aggregate(CoverageAggregator.scala:18) |  
-- | --
  |   | at scoverage.report.CoverageAggregator.aggregate(CoverageAggregator.scala) |  
  |   | at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) |  
  |   | at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) |  
  |   | at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) |  
  |   | at org.scoverage.ScoverageReport$_report_closure1.doCall(ScoverageReport.groovy:51) |  
  |   | at org.scoverage.ScoverageReport$_report_closure1.doCall(ScoverageReport.groovy) |  
  |   | at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) |  
  |   | at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) |  
  |   | at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) |  
  |   | at org.scoverage.ScoverageRunner.run(ScoverageRunner.groovy:32) |  
  |   | at org.scoverage.ScoverageRunner$run.call(Unknown Source) |  
  |   | at org.scoverage.ScoverageReport.report(ScoverageReport.groovy:47) |  
  |   | at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) |  
  |   | at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) |  
  |   | at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) |  
  |   | at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104) |  
  |   | at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58) |  
  |   | at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51) |  
  |   | at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29) |  
  |   | at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:242) |  
  |   | 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$2.execute(DefaultBuildOperationRunner.java:66) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68) |  
  |   | at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:227) |  
  |   | at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:210) |  
  |   | at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:193) |  
  |   | at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:171) |  
  |   | at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:89) |  
  |   | at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:40) |  
  |   | at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:53) |  
  |   | at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:50) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) |  
  |   | at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:50) |  
  |   | at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:40) |  
  |   | at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68) |  
  |   | at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38) |  
  |   | at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48) |  
  |   | at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:36) |  
  |   | at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41) |  
  |   | at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74) |  
  |   | at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55) |  
  |   | at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51) |  
  |   | at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:29) |  
  |   | at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:61) |  
  |   | at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:42) |  
  |   | at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:60) |  
  |   | at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:27) |  
  |   | at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:180) |  
  |   | at org.gradle.internal.execution.steps.BuildCacheStep.executeAndStoreInCache(BuildCacheStep.java:155) |  
  |   | at org.gradle.internal.execution.steps.BuildCacheStep.lambda$executeWithCache$4(BuildCacheStep.java:125) |  
  |   | at org.gradle.internal.execution.steps.BuildCacheStep.lambda$executeWithCache$5(BuildCacheStep.java:125) |  
  |   | at org.gradle.internal.Try$Success.map(Try.java:164) |  
  |   | at org.gradle.internal.execution.steps.BuildCacheStep.executeWithCache(BuildCacheStep.java:85) |  
  |   | at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$0(BuildCacheStep.java:74) |  
  |   | at org.gradle.internal.Either$Left.fold(Either.java:115) |  
  |   | at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59) |  
  |   | at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:73) |  
  |   | at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:48) |  
  |   | at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36) |  
  |   | at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25) |  
  |   | at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36) |  
  |   | at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22) |  
  |   | at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:110) |  
  |   | at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:56) |  
  |   | at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:56) |  
  |   | at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38) |  
  |   | at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:73) |  
  |   | at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:44) |  
  |   | at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37) |  
  |   | at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27) |  
  |   | at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:89) |  
  |   | at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:50) |  
  |   | at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:114) |  
  |   | at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:57) |  
  |   | at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:76) |  
  |   | at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:50) |  
  |   | at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNoEmptySources(SkipEmptyWorkStep.java:249) |  
  |   | at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:86) |  
  |   | at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:54) |  
  |   | at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32) |  
  |   | at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21) |  
  |   | at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38) |  
  |   | at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:43) |  
  |   | at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:31) |  
  |   | at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:40) |  
  |   | at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:287) |  
  |   | at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:40) |  
  |   | at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30) |  
  |   | at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37) |  
  |   | at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27) |  
  |   | at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:44) |  
  |   | at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:33) |  
  |   | at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:76) |  
  |   | at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:144) |  
  |   | at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:133) |  
  |   | at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77) |  
  |   | at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) |  
  |   | at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51) |  
  |   | at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57) |  
  |   | at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56) |  
  |   | at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36) |  
  |   | at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77) |  
  |   | at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55) |  
  |   | at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) |  
  |   | at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) |  
  |   | at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52) |  
  |   | at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:74) |  
  |   | at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:333) |  
  |   | at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:320) |  
  |   | at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:313) |  
  |   | at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:299) |  
  |   | at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:143) |  
  |   | at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:227) |  
  |   | at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:218) |  
  |   | at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:140) |  
  |   | at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) |  
  |   | at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
maiflai commented 2 years ago

Please provide a simple reproduction? I think we have simple test cases here showing that 2.13 works.

Failing that, a full reproduction would be helpful, but it's often not possible to provide this.

rhass commented 2 years ago

Yeah, I tried to see if I could modify the Integration Test for the multi-project build to give a reproduction, but it hasn't been as straight-forward as I had hoped. I know I am not the only person with the issue... so there likely is a way to reproduce, I just haven't identified a simple repro path yet.

rhass commented 2 years ago

@maiflai When I try running the integration tests locally I found a few failing ones. However, the failures might be a different issue.

image

Is there a setup step I am missing which might be causing this?

maiflai commented 2 years ago

This project should have locked down everything apart from the JDK version, so I don't quite know what might be different.

BUILD SUCCESSFUL in 19m 58s 15 actionable tasks: 15 executed

JVM: 1.8.0_241 (Oracle Corporation 25.241-b07)

https://github.com/scoverage/gradle-scoverage/actions?query=branch%3Amaster says that this has built using GitHub Actions, but it's now a while ago and the log has gone. It should have used JDK 11 according to https://github.com/scoverage/gradle-scoverage/blob/master/.github/workflows/gradle.yml

Please could you provide the actual test failures, and perhaps the full build log?

rhass commented 2 years ago

@maiflai I generated a buildscan here: https://scans.gradle.com/s/lc2oudpwa5hpm

The zipfile below is the build/reports directory. The buildscan will probably be of more value though. reports.zip

rhass commented 2 years ago

Actually, look at this build scan instead: https://scans.gradle.com/s/f6gejlextz7rm

I had some leftover cruft in the functionalTest path which I forgot to remove before I ran that last one. This is more inline with the failures I was seeing before. Sorry for any confusion.

maiflai commented 2 years ago

I think you may still have some cruft leftover here - have you tried a full git clean please?

maiflai commented 2 years ago

On your original failure - what other plugins are you using please? I seem to recall difficulties with other plugins which add scala dependencies to the build classpath.

rhass commented 2 years ago
classpath
+--- com.github.johnrengelman.shadow:com.github.johnrengelman.shadow.gradle.plugin:7.1.0
|    \--- gradle.plugin.com.github.johnrengelman:shadow:7.1.0
|         +--- org.jdom:jdom2:2.0.6
|         +--- org.ow2.asm:asm:9.2
|         +--- org.ow2.asm:asm-commons:9.2
|         |    +--- org.ow2.asm:asm:9.2
|         |    +--- org.ow2.asm:asm-tree:9.2
|         |    |    \--- org.ow2.asm:asm:9.2
|         |    \--- org.ow2.asm:asm-analysis:9.2
|         |         \--- org.ow2.asm:asm-tree:9.2 (*)
|         +--- commons-io:commons-io:2.11.0
|         +--- org.apache.ant:ant:1.10.11
|         |    \--- org.apache.ant:ant-launcher:1.10.11
|         +--- org.codehaus.plexus:plexus-utils:3.4.1
|         +--- org.apache.logging.log4j:log4j-core:2.14.1 -> 2.17.1
|         |    \--- org.apache.logging.log4j:log4j-api:2.17.1
|         \--- org.vafer:jdependency:2.7.0
+--- com.vanniktech.dependency.graph.generator:com.vanniktech.dependency.graph.generator.gradle.plugin:0.5.0
|    \--- gradle.plugin.com.vanniktech:gradle-dependency-graph-generator-plugin:0.5.0
|         +--- guru.nidi:graphviz-java:0.5.2
|         |    +--- org.apache.xmlgraphics:batik-rasterizer:1.9
|         |    |    \--- org.apache.xmlgraphics:batik-svgrasterizer:1.9
|         |    |         +--- org.apache.xmlgraphics:batik-parser:1.9
|         |    |         |    +--- org.apache.xmlgraphics:batik-awt-util:1.9
|         |    |         |    |    \--- org.apache.xmlgraphics:batik-util:1.9
|         |    |         |    |         +--- org.apache.xmlgraphics:batik-constants:1.9
|         |    |         |    |         \--- org.apache.xmlgraphics:batik-i18n:1.9
|         |    |         |    +--- org.apache.xmlgraphics:batik-util:1.9 (*)
|         |    |         |    +--- org.apache.xmlgraphics:batik-xml:1.9
|         |    |         |    |    \--- org.apache.xmlgraphics:batik-util:1.9 (*)
|         |    |         |    +--- xml-apis:xml-apis:1.3.04
|         |    |         |    \--- xml-apis:xml-apis-ext:1.3.04
|         |    |         +--- org.apache.xmlgraphics:batik-transcoder:1.9
|         |    |         |    +--- org.apache.xmlgraphics:batik-anim:1.9
|         |    |         |    |    +--- org.apache.xmlgraphics:batik-awt-util:1.9 (*)
|         |    |         |    |    +--- org.apache.xmlgraphics:batik-css:1.9
|         |    |         |    |    |    +--- org.apache.xmlgraphics:batik-util:1.9 (*)
|         |    |         |    |    |    +--- org.apache.xmlgraphics:xmlgraphics-commons:2.2
|         |    |         |    |    |    |    +--- commons-io:commons-io:1.3.1 -> 2.11.0
|         |    |         |    |    |    |    \--- commons-logging:commons-logging:1.0.4
|         |    |         |    |    |    +--- xml-apis:xml-apis:1.3.04
|         |    |         |    |    |    \--- xml-apis:xml-apis-ext:1.3.04
|         |    |         |    |    +--- org.apache.xmlgraphics:batik-dom:1.9
|         |    |         |    |    |    +--- org.apache.xmlgraphics:batik-css:1.9 (*)
|         |    |         |    |    |    +--- org.apache.xmlgraphics:batik-ext:1.9
|         |    |         |    |    |    +--- org.apache.xmlgraphics:batik-util:1.9 (*)
|         |    |         |    |    |    +--- org.apache.xmlgraphics:batik-xml:1.9 (*)
|         |    |         |    |    |    +--- xalan:xalan:2.7.2
|         |    |         |    |    |    |    \--- xalan:serializer:2.7.2
|         |    |         |    |    |    |         \--- xml-apis:xml-apis:1.3.04
|         |    |         |    |    |    +--- xml-apis:xml-apis:1.3.04
|         |    |         |    |    |    \--- xml-apis:xml-apis-ext:1.3.04
|         |    |         |    |    +--- org.apache.xmlgraphics:batik-ext:1.9
|         |    |         |    |    +--- org.apache.xmlgraphics:batik-parser:1.9 (*)
|         |    |         |    |    +--- org.apache.xmlgraphics:batik-svg-dom:1.9
|         |    |         |    |    |    +--- org.apache.xmlgraphics:batik-awt-util:1.9 (*)
|         |    |         |    |    |    +--- org.apache.xmlgraphics:batik-css:1.9 (*)
|         |    |         |    |    |    +--- org.apache.xmlgraphics:batik-dom:1.9 (*)
|         |    |         |    |    |    +--- org.apache.xmlgraphics:batik-ext:1.9
|         |    |         |    |    |    +--- org.apache.xmlgraphics:batik-parser:1.9 (*)
|         |    |         |    |    |    +--- org.apache.xmlgraphics:batik-util:1.9 (*)
|         |    |         |    |    |    +--- xml-apis:xml-apis:1.3.04
|         |    |         |    |    |    \--- xml-apis:xml-apis-ext:1.3.04
|         |    |         |    |    +--- org.apache.xmlgraphics:batik-util:1.9 (*)
|         |    |         |    |    +--- xml-apis:xml-apis:1.3.04
|         |    |         |    |    \--- xml-apis:xml-apis-ext:1.3.04
|         |    |         |    +--- org.apache.xmlgraphics:batik-awt-util:1.9 (*)
|         |    |         |    +--- org.apache.xmlgraphics:batik-bridge:1.9
|         |    |         |    |    +--- org.apache.xmlgraphics:batik-anim:1.9 (*)
|         |    |         |    |    +--- org.apache.xmlgraphics:batik-awt-util:1.9 (*)
|         |    |         |    |    +--- org.apache.xmlgraphics:batik-css:1.9 (*)
|         |    |         |    |    +--- org.apache.xmlgraphics:batik-dom:1.9 (*)
|         |    |         |    |    +--- org.apache.xmlgraphics:batik-ext:1.9
|         |    |         |    |    +--- org.apache.xmlgraphics:batik-gvt:1.9
|         |    |         |    |    |    +--- org.apache.xmlgraphics:batik-awt-util:1.9 (*)
|         |    |         |    |    |    \--- org.apache.xmlgraphics:batik-util:1.9 (*)
|         |    |         |    |    +--- org.apache.xmlgraphics:batik-parser:1.9 (*)
|         |    |         |    |    +--- org.apache.xmlgraphics:batik-script:1.9
|         |    |         |    |    |    +--- org.apache.xmlgraphics:batik-anim:1.9 (*)
|         |    |         |    |    |    +--- org.apache.xmlgraphics:batik-util:1.9 (*)
|         |    |         |    |    |    \--- xml-apis:xml-apis:1.3.04
|         |    |         |    |    +--- org.apache.xmlgraphics:batik-svg-dom:1.9 (*)
|         |    |         |    |    +--- org.apache.xmlgraphics:batik-util:1.9 (*)
|         |    |         |    |    +--- org.apache.xmlgraphics:batik-xml:1.9 (*)
|         |    |         |    |    +--- xalan:xalan:2.7.2 (*)
|         |    |         |    |    +--- xml-apis:xml-apis:1.3.04
|         |    |         |    |    \--- xml-apis:xml-apis-ext:1.3.04
|         |    |         |    +--- org.apache.xmlgraphics:batik-dom:1.9 (*)
|         |    |         |    +--- org.apache.xmlgraphics:batik-gvt:1.9 (*)
|         |    |         |    +--- org.apache.xmlgraphics:batik-svggen:1.9
|         |    |         |    |    +--- org.apache.xmlgraphics:batik-awt-util:1.9 (*)
|         |    |         |    |    +--- org.apache.xmlgraphics:batik-util:1.9 (*)
|         |    |         |    |    \--- xml-apis:xml-apis:1.3.04
|         |    |         |    +--- org.apache.xmlgraphics:batik-util:1.9 (*)
|         |    |         |    +--- org.apache.xmlgraphics:batik-xml:1.9 (*)
|         |    |         |    +--- xml-apis:xml-apis:1.3.04
|         |    |         |    \--- xml-apis:xml-apis-ext:1.3.04
|         |    |         \--- org.apache.xmlgraphics:batik-util:1.9 (*)
|         |    +--- org.apache.xmlgraphics:batik-codec:1.9
|         |    |    +--- org.apache.xmlgraphics:batik-awt-util:1.9 (*)
|         |    |    +--- org.apache.xmlgraphics:batik-bridge:1.9 (*)
|         |    |    +--- org.apache.xmlgraphics:batik-transcoder:1.9 (*)
|         |    |    +--- org.apache.xmlgraphics:batik-util:1.9 (*)
|         |    |    \--- xml-apis:xml-apis:1.3.04
|         |    +--- org.apache.xmlgraphics:xmlgraphics-commons:2.2 (*)
|         |    +--- net.arnx:nashorn-promise:0.1.1
|         |    +--- com.eclipsesource.j2v8:j2v8_macosx_x86_64:4.6.0
|         |    +--- com.eclipsesource.j2v8:j2v8_linux_x86_64:4.6.0
|         |    +--- com.eclipsesource.j2v8:j2v8_win32_x86_64:4.6.0
|         |    +--- com.eclipsesource.j2v8:j2v8_win32_x86:4.6.0
|         |    +--- org.apache.commons:commons-exec:1.3
|         |    +--- org.slf4j:jcl-over-slf4j:1.7.25
|         |    |    \--- org.slf4j:slf4j-api:1.7.25
|         |    +--- org.slf4j:jul-to-slf4j:1.7.25
|         |    |    \--- org.slf4j:slf4j-api:1.7.25
|         |    \--- org.slf4j:slf4j-api:1.7.25
|         \--- org.jetbrains.kotlin:kotlin-stdlib:1.2.41 -> 1.5.31
|              +--- org.jetbrains:annotations:13.0
|              \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31
+--- org.jlleitschuh.gradle.ktlint:org.jlleitschuh.gradle.ktlint.gradle.plugin:10.2.0
|    \--- org.jlleitschuh.gradle:ktlint-gradle:10.2.0
+--- org.gradle.test-retry:org.gradle.test-retry.gradle.plugin:1.2.1
|    \--- org.gradle:test-retry-gradle-plugin:1.2.1
+--- org.sonarqube:org.sonarqube.gradle.plugin:3.4.0.2513
|    \--- org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.4.0.2513
|         \--- org.sonarsource.scanner.api:sonar-scanner-api:2.16.2.588
+--- org.apache.logging.log4j:log4j-core:{require 2.17.1; reject [2.0, 2.17.1)} -> 2.17.1 (c)
+--- org.jetbrains.kotlin:kotlin-stdlib:{strictly 1.5.31} -> 1.5.31 (c)
+--- org.jetbrains:annotations:{strictly 13.0} -> 13.0 (c)
\--- org.jetbrains.kotlin:kotlin-stdlib-common:{strictly 1.5.31} -> 1.5.31 (c)

(c) - dependency constraint
(*) - dependencies omitted (listed previously)
maiflai commented 2 years ago

can you supply the full set of dependencies for all configurations please? I don't think there's anything obvious in the main build classpath.

sebbegg commented 4 weeks ago

Same here :(

* Gradle Scoverage Plugin Version: 8.1
* Gradle Version: 8.10
* Scala Version: 2.12.19
* Java Version: 11
maiflai commented 2 weeks ago

Sorry - please could you provide a minimal build that reproduces the problem?

Thanks, Stu