求mill构建工具搭配Scala 3与Scala.js的示例及解决方案
使用Mill搭配Scala 3和Scala.js的配置指南及问题解决
基础配置示例
Mill原生支持Scala 3与Scala.js的组合,以下是一个最小化的build.sc配置示例:
import mill._ import mill.scalajs._ import mill.scalajs.api.ScalaJSModule object app extends ScalaJSModule { // 指定Scala 3版本 override def scalaVersion = "3.1.2" // 指定与Scala 3兼容的Scala.js版本(需1.6.0及以上) override def scalaJSVersion = "1.13.2" // 依赖声明(Scala.js核心库) override def ivyDeps = Agg( ivy"org.scala-js::scalajs-library:${scalaJSVersion()}" ) }
解决org.scala-js:scalajs-library_sjs1_3:2.6.0解析失败问题
你遇到的依赖解析失败,核心原因是指定的Scala.js版本与Scala 3不兼容,或版本号错误:
- 首先,Scala.js并无
2.6.0这个稳定版本(当前主流稳定版为1.x系列),且只有Scala.js 1.6.0及以上版本支持Scala 3。你需要将scalaJSVersion改为兼容的版本(比如上述示例中的1.13.2)。 - 其次,确保依赖声明使用
::而非:::,Scala 3下Scala.js库的artifact格式为org.scala-js::scalajs-library:<版本号>,Mill会自动处理sjs1_3的后缀拼接。 - 最后,若缓存导致依赖残留问题,可执行以下命令清理并重新拉取依赖:
mill clean mill resolve _._ --ivy
相关参考
Mill官方文档对ScalaJSModule有详细配置说明,社区也有不少开源项目采用类似配置,核心是保证Scala版本与Scala.js版本的兼容性。
内容的提问来源于stack exchange,提问作者user3416742
相关产品推荐
相关产品推荐

