让sbt在类路径上放置javadoc和依赖源

0__*_*0__ 5 resources scala classpath sbt

使用托管依赖项时,我可以告诉sbt下载javadoc和源代码:

"mygroup" % "mymodule" % "myversion" withJavadoc() withSources()
Run Code Online (Sandbox Code Playgroud)

但是这些jar似乎不在运行时类路径上?

我想做的是从我的应用程序访问javadocs和源代码.我可以将这些罐子显示为托管资源,这样我就能做到

ClassLoader.getSystemClassLoader.getResource("/my/package/MyDependency.scala")
Run Code Online (Sandbox Code Playgroud)

ear*_*las 7

您可以通过添加分类器来完成此操作.

对于给定的库依赖项,添加javadocsources classifer:

libraryDependencies += "org.scalaz" %% "scalaz-core" % "7.0.6" classifier "javadoc"

libraryDependencies += "org.scalaz" %% "scalaz-core" % "7.0.6" classifier "sources"
Run Code Online (Sandbox Code Playgroud)

然后,从类路径访问其内容:

val docStream = getClass.getResourceAsStream("""/scalaz/Monad$.html""")
val doc = io.Source.fromInputStream(docStream).mkString
println(doc)
Run Code Online (Sandbox Code Playgroud)

这是一个有效的例子:https://earldouglas.com/ext/stackoverflow.com/questions/22160701/