2012-01-16 14 views
12

Sto usando sbt 0.11.2 per un progetto Java/Scala misto. Mi sono reso conto che quando eseguo il comando doc da dentro sbt, non crea solo gli scaladoc per i file sorgente Scala in src/main/scala, ma anche per i file di origine Java in src/main/java (il wiki sbt afferma di crearli solo per src/main/scala quello non sembra vero).Come escludere i file di origine Java nell'attività doc?

Tuttavia, questo non sembra molto bene. Ad esempio, per una classe Java denominata Foo con metodi statici ci sono due voci nello scaladoc generato: una classe Foo e un oggetto . La classe elenca solo il costruttore e l'oggetto elenca i metodi statici.

C'è un modo in cui posso dire a sbt di escludere la cartella src/main/java dalla generazione di scaladoc? Voglio invece creare javadoc per quelli.

risposta

12

Il modo usuale per gestire quello è utilizzare inspect per vedere da dove provengono le informazioni e quindi modificarlo. Ispezione a doc mostra compile:sources(for doc), che è un Seq[java.io.File], e può essere modificato in questo modo:

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

È possibile utilizzare show compile:sources(for doc) per vedere cosa contiene, e quindi set di cambiarla e controllare di nuovo il suo valore.

+1

Grazie Daniel, l'aggiunta di questa riga al file 'build.sbt' del mio progetto risolve il problema. Sfortunatamente, la documentazione di SBT è abbastanza superficiale nello spiegare ogni funzione e la configurazione di impostazioni avanzate come questa non è per principianti di Scala come me. Si spera che si presti più attenzione all'intero aspetto della documentazione di Scala e delle sue librerie. – pemistahl

+1

@PeterStahl Mi permetto di non essere d'accordo. La documentazione SBT copre ampiamente questo argomento: all'avvio rapido e poi ancora negli argomenti avanzati. Insegna piuttosto l'approccio di cui sopra: come scoprire i meccanismi di un compito e come sovrascriverlo. Lo so, perché è passato appena un mese da quando ho dovuto scavare più a fondo delle impostazioni di base, e tutto quanto ho imparato sopra sul wiki SBT. –

+1

Sono d'accordo che le informazioni necessarie possono essere trovate su [questa pagina] (https://github.com/harrah/xsbt/wiki/Getting-Started-More-About-Settings). Tuttavia, per me è difficile adattare il suo contenuto a nuovi problemi. La preparazione didattica del wiki SBT potrebbe essere migliore. Soprattutto più esempi chiarirebbero molte cose. A parte questo, stavo semplicemente parlando della situazione della documentazione di Scala in generale, non solo di SBT. Ad ogni modo, questo non è il posto giusto per discuterne, quindi finiamo qui. Grazie ancora! – pemistahl

Problemi correlati