Skip to content

[2.x] scaladoc failure when semanticdbEnabled is enabled on scala 2.x projects #8740

@bjaglin

Description

@bjaglin

steps

➜ cat project/build.properties
sbt.version=2.0.0-RC8
➜ cat build.sbt
semanticdbEnabled := true
scalaVersion := "2.12.21"
➜ cat src/main/scala/A.scala
object A

problem

Scaladoc failure

sbt:test> doc
[error] bad option: -P:semanticdb:targetroot:/private/tmp/test/target/out/jvm/scala-2.12.21/test/meta
[error] one error found doc 0s
[error] stack trace is suppressed; run last Compile / doc for the full output
[error] (Compile / doc) Scaladoc generation failed
[error] elapsed time: 1 s, cache 7%, 1 disk cache hit, 13 onsite tasks
sbt:test> last doc
[debug] Getting org.scala-sbt:compiler-bridge_2.12:2.0.0-M11:compile for Scala 2.12.21
[debug] Calling Scaladoc with arguments:
[debug] 	-d
[debug] 	/private/tmp/test/target/out/jvm/scala-2.12.21/test/api
[debug] 	-Xplugin:${CSR_CACHE}/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.12.21/4.14.2/semanticdb-scalac_2.12.21-4.14.2.jar
[debug] 	-Yrangepos
[debug] 	-P:semanticdb:targetroot:/private/tmp/test/target/out/jvm/scala-2.12.21/test/meta
[debug] 	-bootclasspath
[debug] 	/Users/brice.jaglin/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.21/scala-library-2.12.21.jar
[debug] 	-classpath
[debug] 	dummy_8e2dff45
[debug] 	/private/tmp/test/src/main/scala/A.scala
[error] bad option: -P:semanticdb:targetroot:/private/tmp/test/target/out/jvm/scala-2.12.21/test/meta
[error] one error found
[error] Scaladoc generation failed
[error] 	at xsbt.Runner.run(ScaladocBridge.scala:50)
[error] 	at xsbt.ScaladocBridge.run(ScaladocBridge.scala:21)
[error] 	at sbt.internal.inc.AnalyzingCompiler.doc(AnalyzingCompiler.scala:154)
[error] 	at sbt.internal.inc.AnalyzingCompiler.doc(AnalyzingCompiler.scala:133)
[error] 	at sbt.Defaults$.docTaskSettings$$anonfun$5(Defaults.scala:1997)
[error] 	at scala.Function1.$anonfun$compose$1(Function1.scala:79)
[error] 	at scala.Function1.$anonfun$compose$1(Function1.scala:79)
[error] 	at sbt.std.Transform$$anon$3.work(Transform.scala:79)
[error] 	at sbt.std.Transform$$anon$3.work(Transform.scala:79)
[error] 	at sbt.Execute.submit$$anonfun$1$$anonfun$1(Execute.scala:284)
[error] 	at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:24)
[error] 	at sbt.Execute.work(Execute.scala:295)
[error] 	at sbt.Execute.submit$$anonfun$1(Execute.scala:284)
[error] 	at sbt.ConcurrentRestrictions$$anon$4.$anonfun$2(ConcurrentRestrictions.scala:275)
[error] 	at sbt.CompletionService$$anon$2.call(CompletionService.scala:75)
[error] 	at sbt.CompletionService$$anon$2.call(CompletionService.scala:73)
[error] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
[error] 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545)
[error] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
[error] 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
[error] 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
[error] 	at java.base/java.lang.Thread.run(Thread.java:1474)
[error] (Compile / doc) Scaladoc generation failed

expectation

No errror, like in sbt 1.x

➜ cat project/build.properties
sbt.version=1.12.2
sbt:test> doc
[info] Main Scala API documentation to /private/tmp/test/target/scala-2.12/api...
model contains 2 documentable templates
[info] Main Scala API documentation successful.
[success] Total time: 1 s, completed 14 Feb 2026, 19:19:25

notes

The error points at the -P:semanticdb flag but I think the real problem is that the plugin that is not properly loaded because CSR_CACHE is not expanded when calling Scaladoc, and thus associated flags are rejected.

Judging by the logs, when it works, CSR_CACHE does get expanded, for example with

  • doc on sbt 1.x
  • compile on any sbt version

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions