2012-01-16 44 views
12

我对混合的Java/Scala项目使用sbt 0.11.2。我意识到,当我在sbt中运行doc命令时,它不仅为src/main/scala中的Scala源文件创建scaladoc,还为src/main/java中的Java源文件创建了scaladocs(sbt wiki声称仅为src/main/scala创建它们这似乎不是真的)。如何在doc任务中排除java源文件?

但是,这看起来不太好。例如,对于静态方法名为Foo的Java类,生成的scaladoc中有两个条目:一个Foo类和一个Foo对象。该类只列出构造函数,而对象列出静态方法。

有什么办法可以告诉sbt从scaladoc代中排除src/main/java文件夹吗?我想为它们创建javadoc。

回答

12

处理该问题的常用方法是使用inspect来查看信息来自哪里,然后对其进行更改。在doc检查显示compile:sources(for doc),这是一个Seq[java.io.File],并且可以这样改变:

sources in (Compile, doc) ~= (_ filter (_.getName endsWith ".scala")) 

您可以使用show compile:sources(for doc)看到它所包含的内容,然后set去改变它,并再次检查其值。

+1

感谢Daniel,将此行添加到我的项目'build.sbt'中解决了这个问题。不幸的是,SBT的文档在解释每个功能和配置高级设置方面颇为肤浅,像这个不适合像我这样的Scala初学者。希望更多关注Scala及其库的整个文档方面。 – pemistahl 2012-01-18 20:15:10

+1

@PeterStahl我不同意。 SBT文件广泛涵盖了这些内容 - 快速入门,然后再次介绍高级主题。它几乎教导了上述方法:如何发现任务的工作方式,以及如何覆盖它。我知道这一点,因为距离我不得不深入到基本设置还不到一个月,上述所有内容都是在SBT wiki上学到的。 – 2012-01-18 22:15:31

+1

我同意可以在[本页]找到必要的信息(https://github.com/harrah/xsbt/wiki/Getting-Started-More-About-Settings)。但是,我很难将其内容适应新的问题。 SBT wiki的教学准备工作可能会更好。特别是更多的例子会澄清很多事情。除此之外,我只是谈论Scala的文档情况,而不仅仅是SBT。无论如何,这不是讨论这个问题的好地方,所以让我们在这里完成。再次感谢! – pemistahl 2012-01-19 12:07:21

相关问题