2012-01-16 46 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

相關問題