2012-02-19 32 views
6

Tôi đang tạo một số nhiệm vụ tùy chỉnh trong dự án SBT của mình và cần gọi các nhiệm vụ khác cho điều đó.SBT cách chạy InputTask

Tôi có thể gọi inputTask từ bên trong công việc của mình như thế nào và hỗ trợ chúng một số đầu vào?

Trả lời

5

Vì bạn có thể tính toán các nhiệm vụ của mình xung quanh việc này, tôi giả sử bạn đang cố sử dụng tác vụ run. Phải mất một chút đào, nhưng cuối cùng tôi đã làm cho nó hoạt động; trong Tóm lại, đây là những gì bạn làm (giả định nhiệm vụ của bạn được đặt tên deployTask, tinh chỉnh để phù hợp với nhu cầu của bạn):

deployTask <<= (fullClasspath in Compile, runner) map { (classpath, runner) => 
     val logger = ConsoleLogger() // Not sure this is optimal 
     Run.executeTrapExit({ 
      Run.run("com.sample.MainClass", 
        classpath map { _.data }, 
        Seq("option1", "option2", "..."), // <-- Options go here 
        logger)(runner) 
     }, logger) 
    } 

này không gọi InputTask trực tiếp (Tôi đã không tìm thấy một cách để làm điều đó chưa), nhưng ít nhất nó cho phép bạn chạy mã Java tùy ý.

+0

Đây là một trợ giúp tuyệt vời. Tôi đã tìm kiếm một vài giờ ngay bây giờ, cố gắng tìm hiểu cách chạy 'InputTask' trực tiếp. Bạn đã đề cập rằng bạn đã không tìm ra cách * nhưng * ... vài tháng trước - bất kỳ cơ hội nào bạn đã tìm ra nó từ đó? – Dylan

+0

Xin lỗi, không. Thành thật mà nói chúng tôi đã chuyển sang Maven - nó không phải là thanh lịch nhưng dễ dàng hơn để có được đội ngũ và chạy với. –

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