0

如果要加载模块源代码和/或 javadocs,请编写以下 sbt:

lazy val joda_timeV = "1.2.3" 
lazy val scalatagsV = "1.2.3" 
lazy val upickleV = "1.2.4" 
lazy val autowireV = "1.2.5" 
lazy val scalarxV = "1.2.6" 


libraryDependencies ++= Seq( 
  "joda-time" % "joda-time" % joda_timeV withJavadoc(), 
  "com.lihaoyi" %%% "scalatags" % scalatagsV withSources() withJavadoc(),   
  "com.lihaoyi" %% "upickle" % upickleV withSources() withJavadoc(),
  "com.lihaoyi" %%% "autowire" % autowireV withJavadoc(),
  "com.lihaoyi" %%% "scalarx" % scalarxV  withSources(),
  "org.scalatestplus.play" %% "scalatestplus-play" % scalatestplus_playV % "test" withSources() withJavadoc() 
),

在工厂你说

override def ivyDeps = Agg(
    ivy"joda-time:joda-time:${joda_timeV}", 
    ivy"com.lihaoyi:::scalatags:${scalatagsV}", 
    ivy"com.lihaoyi::upickle:${upickleV}",
    ivy"com.lihaoyi:::autowire:${autowireV}",
    ivy"com.lihaoyi:::scalarx:${scalarxV}"
)

但是如何添加withJavadoc()或添加withSources()withSources() withJavadoc()mill build.sc?有功能.withConfiguration(String)但没有 scaladoc 如何使用它。

是否可以定义一个模块仅在测试中可用(就像org.scalatestplus.play在前面的代码中一样)或者我应该为测试模块创建单独的 ivyDeps?

4

1 回答 1

0

关于您的第一个问题,我假设您对良好的 IDE 支持感兴趣,例如完成和跳转到您的依赖项的来源。

Mill 已经支持 IDE 集成。它带有一个用于 IntelliJ IDEA ( mill mill.scalalib.GenIdea/idea) 的项目生成器,它会自动为您下载源代码。或者,您可以使用新的 BSP 支持(构建服务器协议),它应该与金属语言服务器 ( https://scalameta.org/metals/ ) 结合使用,在各种 IDE 和编辑器中提供良好的编辑体验。不幸的是,在撰写本文时,Mills 内置的 BSP 服务器不如其 IDEA 生成器强大,但还有另一种替代方案,即 Bloop contrib 模块。所有这些方法都应该通过依赖项和完成提供体面的代码导航。

对于你的第二个问题:

是否可以定义一个模块仅在测试中可用(就像org.scalatestplus.play在前面的代码中一样)或者我应该为测试模块创建单独的 ivyDeps?

测试依赖项被声明为测试模块(在技术上也是常规模块)。

// build.sc
// ...

object yourplaymodule extends PlayModule {
  override def ivyDeps = Agg(
    ivy"joda-time:joda-time:${joda_timeV}", 
    ivy"com.lihaoyi:::scalatags:${scalatagsV}", 
    ivy"com.lihaoyi::upickle:${upickleV}",
    ivy"com.lihaoyi:::autowire:${autowireV}",
    ivy"com.lihaoyi:::scalarx:${scalarxV}"
  )
  // ...
  object test extends PlayTests {
    override def ivyDeps = Agg(
      ivy"org.scalatestplus.play::scalatestplus-play:${scalatestplus_playV}"
    )
  }
}

编辑 2021-09-16:添加了第一个问题的答案。

于 2021-09-15T07:55:55.207 回答