2012-01-16 24 views
12

Tôi đang sử dụng sbt 0.11.2 cho dự án Java/Scala hỗn hợp. Tôi đã nhận ra rằng khi tôi chạy lệnh doc từ bên trong sbt, nó không chỉ tạo các scaladocs cho các tệp nguồn Scala trong src/main/scala, mà còn cho các tệp nguồn Java trong src/main/java (wiki sbt xác nhận để tạo chúng cho src/main/scala chỉ điều đó có vẻ không đúng).Làm cách nào để loại trừ tệp nguồn java trong tác vụ doc?

Tuy nhiên, điều này không có vẻ rất tốt. Ví dụ, đối với một lớp Java có tên là Foo với các phương thức tĩnh có hai mục trong scaladoc được tạo ra: một lớp Foo và một đối tượng Foo. Lớp chỉ liệt kê hàm tạo và đối tượng liệt kê các phương thức tĩnh.

Có cách nào tôi có thể yêu cầu sbt loại trừ thư mục src/main/java khỏi thế hệ scaladoc không? Tôi muốn tạo javadocs cho những người thay thế.

Trả lời

12

Cách thông thường để xử lý đó là sử dụng inspect để xem thông tin đến từ đâu và sau đó thay đổi. Kiểm tra tại doc lãm compile:sources(for doc), mà là một Seq[java.io.File], và có thể được thay đổi như thế này:

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

Bạn có thể sử dụng show compile:sources(for doc) để xem những gì nó chứa, và sau đó set để thay đổi nó và kiểm tra lại giá trị của nó.

+1

Cảm ơn Daniel, việc thêm dòng này vào 'build.sbt' của dự án sẽ giải quyết được vấn đề. Thật không may, tài liệu của SBT khá hời hợt trong việc giải thích từng tính năng và cấu hình các thiết lập nâng cao như thế này không dành cho những người mới bắt đầu như Scala. Hy vọng rằng, nhiều sự chú ý hơn sẽ được trả cho toàn bộ khía cạnh tài liệu của Scala và các thư viện của nó. – pemistahl

+1

@PeterStahl Tôi cầu xin không đồng ý. Các tài liệu SBT bao gồm này rộng rãi - lúc khởi động nhanh, và sau đó một lần nữa trong các chủ đề nâng cao. Nó dạy khá nhiều cách tiếp cận ở trên: cách khám phá các hoạt động của một nhiệm vụ, và sau đó làm thế nào để ghi đè nó. Tôi biết điều này, bởi vì nó đã được chỉ một tháng kể từ khi tôi đã phải đào sâu hơn các thiết lập cơ bản, và tất cả những điều trên tôi đã học được trên wiki SBT. –

+1

Tôi đồng ý rằng các thông tin cần thiết có thể được tìm thấy trên [trang này] (https://github.com/harrah/xsbt/wiki/Getting-Started-More-About-Settings). Tuy nhiên, thật khó cho tôi để thích ứng với nội dung của nó đối với các vấn đề mới. Việc chuẩn bị không thực tế của wiki SBT có thể tốt hơn. Đặc biệt là nhiều ví dụ hơn sẽ làm rõ rất nhiều điều. Ngoài ra, tôi chỉ nói về tình hình tài liệu của Scala nói chung, không chỉ SBT. Dù sao, đây không phải là nơi thích hợp để thảo luận về điều này, vì vậy chúng ta hãy kết thúc ở đây. Cảm ơn một lần nữa! – pemistahl

Các vấn đề liên quan