Có thể ghi đè hoặc sửa đổi các nhiệm vụ SBT tích hợp (như biên dịch) để phụ thuộc vào các tác vụ tùy chỉnh trong Build.scala của riêng tôi không? Ghi đè ví dụ: "biên dịch" trực tiếp là không thể vì nó đã được định nghĩa với val lười biếng và do đó đề cập đến super.compile phát ra một lỗi trình biên dịch "siêu có thể không được sử dụng trên giá trị lười biếng".Thêm phụ thuộc nhiệm vụ mới vào các nhiệm vụ SBT tích hợp?
Trả lời
Kể từ khi câu hỏi này xuất hiện khi Googling làm thế nào để thêm một sự phụ thuộc trong SBT, và câu trả lời hiện tại là deprecated as of 0.13.x và loại bỏ trong 1.0, đây là câu trả lời được cập nhật, giả định rằng printAction
là nhiệm vụ mà compile
nên phụ thuộc vào:
(Compile/compile) := ((Compile/compile) dependsOn printAction).value
Trả lời tự: http://code.google.com/p/simple-build-tool/wiki/ProjectDefinitionExamples#Insert_Task_Dependency nói với câu trả lời:
Nếu bạn đang sử dụng phiên bản 0.7.x SBT cũ hơn, bạn có thể làm điều này:
import sbt._
class SampleProject(info: ProjectInfo) extends DefaultProject(info) {
lazy val printAction = task { print("Testing...") }
override def compileAction = super.compileAction dependsOn(printAction)
}
Xin lưu ý rằng đề xuất này chỉ hoạt động đối với 'cũ' SBT 0.7.x. 0.11 hiện tại thực hiện nó một cách khác nhau. –
Phiên bản mới hoạt động như thế nào? – Hadesara
Câu trả lời này đã lỗi thời. Xem [phiên bản cập nhật tôi vừa đăng] (https://stackoverflow.com/a/47654822/596329). – arussell84
Cập nhật: Xem câu trả lời arussell84 cho một cách hiện đại để làm điều này
Bạn sẽ có thể để làm điều đó như thế này:
trong một file .sbt:
compile <<= (compile in Compile) dependsOn jruby
đâu JRuby là chìa khóa nhiệm vụ mà bạn đã định nghĩa trong một tập tin dự án/something.scala:
val jruby = TaskKey[Unit]("jruby", "run a jruby file")
Ngoài ra, đây không phải là một phần của câu hỏi của bạn nhưng bạn chỉ có thể gọi thường xuyên đang Scala:
compile <<= (compile in Compile) map { result =>
println("in compile, something")
result
}
Có rất nhiều 'biên dịch trong đó tôi không thể làm việc ra cách này khái quát hóa để thêm phụ thuộc vào các nhiệm vụ khác. Tôi phải làm gì để thêm phụ thuộc vào 'giai đoạn'? –
@ScottMorrison Tôi nghĩ bạn nói: 'stage << stage dependsOn jruby' – 0fnt
Câu trả lời này đã lỗi thời. Xem [phiên bản cập nhật tôi vừa đăng] (https://stackoverflow.com/a/47654822/596329). – arussell84
Trong thư mục base_dir/project/
tạo một file build.sbt
và đưa libraryDependencies += ...
đó.
Đó là cách SBT thành ngữ để xây dựng "dự án xây dựng" của bạn, còn được gọi là "Xây dựng Meta".
- 1. Thêm các phụ thuộc nhiệm vụ vào Rake :: TestTask
- 2. sbt Đường dẫn nhiệm vụ
- 3. Nhiều phụ thuộc vào nhiệm vụ kiến
- 4. Chạy nhiệm vụ SBT từ Eclipse
- 5. Kết hợp nhiều nhiệm vụ cào cào vào một nhiệm vụ
- 6. sbt 0,11 ví dụ nhiệm vụ chạy cần thiết
- 7. hoàn thành nhiệm vụ
- 8. GenerateOfficeAddInManifest lỗi nhiệm vụ
- 9. Vòng đời nhiệm vụ
- 10. Gradle: nhiệm vụ jar bản gốc 'clone' để tạo một nhiệm vụ mới cho một lọ bao gồm các phụ thuộc
- 11. Cách thêm nhiệm vụ sạch - Nhiệm vụ 'sạch' không được tìm thấy
- 12. Cách thích hợp để chuỗi Nhiệm vụ
- 13. Làm cách nào để hợp nhất hai kết quả Nhiệm vụ trong nhiệm vụ thứ ba?
- 14. Nhiệm vụ SBT để sao chép tệp thuộc tính từ thư mục dự án sang webapp
- 15. nhiệm vụ android giết
- 16. cào biến nhiệm vụ
- 17. Phát hiện khi nào một nhiệm vụ cần tây và tất cả các nhiệm vụ phụ đã hoàn thành
- 18. Chạy một nhiệm vụ sau khi tất cả các nhiệm vụ đã được hoàn thành
- 19. Nhiệm vụ Gradle để gọi các nhiệm vụ khác theo thứ tự
- 20. làm sạch nhiệm vụ cần tây với DB phụ trợ
- 21. Sự kiện đa nhiệm sự kiện/nhiệm vụ C++
- 22. Tốt hơn để sử dụng các phụ thuộc nhiệm vụ hoặc task.doLast trong Gradle?
- 23. Xóa nhiệm vụ và bắt đầu một hoạt động mới
- 24. Làm thế nào để chờ đợi trên tất cả các tác vụ (tạo nhiệm vụ và nhiệm vụ phụ) mà không sử dụng TaskCreationOptions.AttachedToParent
- 25. ContinueWith một hủy nhiệm vụ
- 26. Nhiệm vụ nền trên appengine
- 27. Django Celery nhận nhiệm vụ
- 28. Hadoop - tăng nhiệm vụ bản đồ trong xml không tăng nhiệm vụ bản đồ khi chạy
- 29. Kiểm tra Nhiệm vụ Rake
- 30. Nhiệm vụ cào đa luồng
Có thể trùng lặp cho SBT 0.13 http://stackoverflow.com/q/8554992/1305344 –