В gradle 6.x+, как сделать плагин gradle scala совместимым с плагином java-testFixtures?

У меня есть проект с открытым исходным кодом, который использует оба плагина:

https://github.com/tribbloid/shapesafe/tree/e1ccc725f595b975304f7e43a68798d7f8ad8576

      
allprojects {

    apply(plugin = "java")
    apply(plugin = "java-library")
    apply(plugin = "java-test-fixtures")
    apply(plugin = "scala")
...

Когда я запускаю сборку gradle, я получаю следующий вывод ошибки:

      8:09:52 p.m.: Executing task 'build'...

> Task :buildSrc:compileKotlin UP-TO-DATE
> Task :buildSrc:compileJava NO-SOURCE
> Task :buildSrc:compileGroovy NO-SOURCE
> Task :buildSrc:pluginDescriptors UP-TO-DATE
> Task :buildSrc:processResources NO-SOURCE
> Task :buildSrc:classes UP-TO-DATE
> Task :buildSrc:inspectClassesForKotlinIC UP-TO-DATE
> Task :buildSrc:jar UP-TO-DATE
> Task :buildSrc:assemble UP-TO-DATE
> Task :buildSrc:compileTestKotlin NO-SOURCE
> Task :buildSrc:pluginUnderTestMetadata UP-TO-DATE
> Task :buildSrc:compileTestJava NO-SOURCE
> Task :buildSrc:compileTestGroovy NO-SOURCE
> Task :buildSrc:processTestResources NO-SOURCE
> Task :buildSrc:testClasses UP-TO-DATE
> Task :buildSrc:test NO-SOURCE
> Task :buildSrc:validatePlugins UP-TO-DATE
> Task :buildSrc:check UP-TO-DATE
> Task :buildSrc:build UP-TO-DATE
> Task :compileKotlin NO-SOURCE
> Task :compileJava NO-SOURCE
> Task :compileScala NO-SOURCE
> Task :processResources NO-SOURCE
> Task :classes UP-TO-DATE
> Task :inspectClassesForKotlinIC UP-TO-DATE
> Task :jar UP-TO-DATE
> Task :assemble UP-TO-DATE
> Task :compileTestFixturesKotlin NO-SOURCE
> Task :compileTestFixturesJava NO-SOURCE
> Task :compileTestFixturesScala NO-SOURCE
> Task :compileTestKotlin NO-SOURCE
> Task :compileTestJava NO-SOURCE
> Task :compileTestScala NO-SOURCE
> Task :processTestResources NO-SOURCE
> Task :testClasses UP-TO-DATE
> Task :processTestFixturesResources NO-SOURCE
> Task :testFixturesClasses UP-TO-DATE
> Task :testFixturesJar UP-TO-DATE
> Task :test NO-SOURCE
> Task :check UP-TO-DATE
> Task :build UP-TO-DATE
> Task :graph-commons:compileKotlin NO-SOURCE
> Task :graph-commons:compileJava NO-SOURCE
> Task :graph-commons:compileScala UP-TO-DATE
> Task :macro:compileKotlin NO-SOURCE
> Task :macro:compileJava NO-SOURCE
> Task :macro:compileScala
> Task :core:compileKotlin NO-SOURCE
> Task :core:compileJava NO-SOURCE
> Task :core:compileScala
> Task :core:processResources NO-SOURCE
> Task :core:classes
> Task :core:inspectClassesForKotlinIC UP-TO-DATE
> Task :core:jar UP-TO-DATE
> Task :core:assemble UP-TO-DATE
> Task :core:compileTestFixturesKotlin NO-SOURCE
> Task :core:compileTestFixturesJava NO-SOURCE
> Task :core:compileTestFixturesScala NO-SOURCE
> Task :graph-commons:compileTestFixturesKotlin NO-SOURCE
> Task :graph-commons:compileTestFixturesJava NO-SOURCE

> Task :graph-commons:compileTestFixturesScala FAILED
9 actionable tasks: 3 executed, 6 up-to-date
## Exception when compiling 2 sources to /home/peng/git/shapesafe/graph-commons/build/classes/scala/testFixtures
java.lang.reflect.InvocationTargetException
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
java.lang.reflect.Constructor.newInstance(Constructor.java:423)
scala.tools.nsc.plugins.Plugin$.instantiate(Plugin.scala:183)
scala.tools.nsc.plugins.Plugins.loadRoughPluginsList(Plugins.scala:58)
scala.tools.nsc.plugins.Plugins.loadRoughPluginsList$(Plugins.scala:38)
scala.tools.nsc.Global.loadRoughPluginsList(Global.scala:43)
scala.tools.nsc.Global.roughPluginsList$lzycompute(Global.scala:43)
scala.tools.nsc.Global.roughPluginsList(Global.scala:43)
scala.tools.nsc.plugins.Plugins.loadPlugins(Plugins.scala:147)
scala.tools.nsc.plugins.Plugins.loadPlugins$(Plugins.scala:117)
scala.tools.nsc.Global.loadPlugins(Global.scala:43)
scala.tools.nsc.Global.plugins$lzycompute(Global.scala:43)
scala.tools.nsc.Global.plugins(Global.scala:43)
scala.tools.nsc.plugins.Plugins.computePluginPhases(Plugins.scala:174)
scala.tools.nsc.plugins.Plugins.computePluginPhases$(Plugins.scala:173)
scala.tools.nsc.Global.computePluginPhases(Global.scala:43)
scala.tools.nsc.Global.computePhaseDescriptors(Global.scala:715)
xsbt.ZincCompiler.phaseDescriptors$lzycompute(CallbackGlobal.scala:141)
xsbt.ZincCompiler.phaseDescriptors(CallbackGlobal.scala:135)
scala.tools.nsc.Global$Run.<init>(Global.scala:1227)
xsbt.ZincCompiler$ZincRun.<init>(CallbackGlobal.scala:79)
xsbt.CachedCompiler0.run(CompilerInterface.scala:151)
xsbt.CachedCompiler0.run(CompilerInterface.scala:125)
xsbt.CompilerInterface.run(CompilerInterface.scala:39)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:498)
sbt.internal.inc.AnalyzingCompiler.call(AnalyzingCompiler.scala:248)
sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:122)
sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:95)
sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:91)
scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:186)
sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$3(MixedAnalyzingCompiler.scala:82)
sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$3$adapted(MixedAnalyzingCompiler.scala:77)
sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:215)
sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:77)
sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:146)
sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:343)
sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:343)
sbt.internal.inc.Incremental$.doCompile(Incremental.scala:120)
sbt.internal.inc.Incremental$.$anonfun$compile$4(Incremental.scala:100)
sbt.internal.inc.IncrementalCommon.recompileClasses(IncrementalCommon.scala:180)
sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:98)
sbt.internal.inc.Incremental$.$anonfun$compile$3(Incremental.scala:102)
sbt.internal.inc.Incremental$.manageClassfiles(Incremental.scala:155)
sbt.internal.inc.Incremental$.compile(Incremental.scala:92)
sbt.internal.inc.IncrementalCompile$.apply(Compile.scala:75)
sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:348)
sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:301)
sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:168)
sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:248)
sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:74)
org.gradle.api.internal.tasks.scala.ZincScalaCompiler.execute(ZincScalaCompiler.java:169)
org.gradle.api.internal.tasks.scala.ZincScalaCompilerFacade.execute(ZincScalaCompilerFacade.java:52)
org.gradle.api.internal.tasks.scala.ZincScalaCompilerFacade.execute(ZincScalaCompilerFacade.java:31)
org.gradle.api.internal.tasks.compile.daemon.AbstractDaemonCompiler$CompilerWorkAction.execute(AbstractDaemonCompiler.java:135)
org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:49)
org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:43)
org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:97)
org.gradle.workers.internal.AbstractClassLoaderWorker.executeInClassLoader(AbstractClassLoaderWorker.java:43)
org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:49)
org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:30)
org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:85)
org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:55)
org.gradle.process.internal.worker.request.WorkerAction$1.call(WorkerAction.java:138)
org.gradle.process.internal.worker.child.WorkerLogEventListener.withWorkerLoggingProtocol(WorkerLogEventListener.java:41)
org.gradle.process.internal.worker.request.WorkerAction.run(WorkerAction.java:135)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:498)
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
java.lang.Thread.run(Thread.java:748)
           

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':graph-commons:compileTestFixturesScala'.
> java.lang.reflect.InvocationTargetException

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 4s
8:09:57 p.m.: Task execution finished 'build'.

Похоже, это указывает на то, что scalac (2.13.3) полностью осведомлен о правильных путях к классам, необходимых для компиляции каждой строки кода в проекте. :graph-commons, каталог src/testFixtures, но он вызывает ошибку и падает. Такое поведение кажется очень необычным, scalac довольно независим от поведения плагина java-testFixtures (или любых других частей программы gradle), он работает только с путем к классам.

Каков наилучший способ отладить эту ошибку и выяснить, почему на ней произошел сбой scalac?

0 ответов

Другие вопросы по тегам