You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mill的ivyDeps中配置withSources、withJavadoc及测试依赖

问题1:为指定依赖添加源码/Javadoc的方法

Mill的Ivy依赖原生支持链式调用.withSources()和.withJavadoc()方法实现和SBT完全等价的效果,两个方法可以单独调用也可以叠加调用,不需要使用你找到的.withConfiguration()方法。
对应你的示例改造后的配置如下:

override def ivyDeps = Agg(
    ivy"joda-time:joda-time:${joda_timeV}".withJavadoc(), 
    ivy"com.lihaoyi:::scalatags:${scalatagsV}".withSources().withJavadoc(), 
    ivy"com.lihaoyi::upickle:${upickleV}".withSources().withJavadoc(),
    ivy"com.lihaoyi:::autowire:${autowireV}".withJavadoc(),
    ivy"com.lihaoyi:::scalarx:${scalarxV}".withSources()
)
问题2:测试范围依赖的配置方法

Mill没有在主模块依赖中直接指定测试范围的语法,你需要在测试模块中单独配置专属的ivyDeps,该配置的依赖只会在测试环节生效,等价于SBT中添加% "test"后缀的效果。
常规的完整配置示例如下:

import mill._, scalalib._

object MyProject extends ScalaModule {
  // 主模块依赖,全局生效
  override def ivyDeps = Agg(
    ivy"joda-time:joda-time:${joda_timeV}".withJavadoc(), 
    ivy"com.lihaoyi:::scalatags:${scalatagsV}".withSources().withJavadoc(), 
    ivy"com.lihaoyi::upickle:${upickleV}".withSources().withJavadoc(),
    ivy"com.lihaoyi:::autowire:${autowireV}".withJavadoc(),
    ivy"com.lihaoyi:::scalarx:${scalarxV}".withSources()
  )

  object test extends TestModule.ScalaTest {
    // 测试模块专属依赖,仅测试环节生效
    override def ivyDeps = Agg(
      ivy"org.scalatestplus.play::scalatestplus-play:${scalatestplus_playV}".withSources().withJavadoc()
    )
  }
}

内容的提问来源于stack exchange,提问作者user4955663

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 16:45:03