Scala3 jlink build failing

Hi, I’m attempting to upgrade a jlink application to scala3. I keep running into this error saying I’m missing a transitive dependency called scala.quoted which depends on scala. Here is the error

[error] Dependee packages not found in classpath. You can use jlinkIgnoreMissingDependency to silence these.
[error]   scala.quoted -> scala
[error]   scala.quoted.runtime -> scala

Here is the output of dependencyTree inside of sbt

Here is the link to the github repo with the github action run attempting to create the jlink build: 2024 05 11 scala3 crossbuild · bitcoin-s/bitcoin-s@e475fca · GitHub

If you want to re-produce yourself, you can

  1. Checkout this branch GitHub - Christewart/bitcoin-s-core at 2024-05-11-scala3-crossbuild
  2. Run sbt appServer/universal:stage

What do i need to do to get the jlink build to work?

Hi, @Chris_Stewart_5 .

Not sure if this is pitched at the right level given your prior involvement with Bitcoin-S, but have you come across this: GitHub - yadavan88/scala-app-packaging-methods: Different ways to package a simple scala application?

I notice it mentions the dependencies you reported above, and these haven’t been excluded yet from the build.sbt in your repository.

1 Like

I forgot to write in the original post that this build is succeeding on scala2. It seems like something with Scala3 is causing errors with the build.

https://stackoverflow.com/questions/79636833/fix-missing-transnitive-dependencies-with-jlink-and-scala3-scala-quoted-scal

1 Like

Thanks @DmytroMitin for debugging this, it wasn’t for the faint of heart.

What is the process for actually fixing scala3 with jdeps? I really hope am not the only one to attempt to have built a runtime image with scala3?

1 Like