2011-08-12 24 views
11

Tôi mới tham gia SBT và không chắc chắn cách bắt đầu dự án. Ai đó có thể chỉ cho tôi hướng dẫn của người mới bắt đầu để tạo dự án kiểu Hello World hay cho tôi một số manh mối không?Hướng dẫn cho người mới tham gia SBT 0.10 và IDEA

IDE ưa thích của tôi là IDEA. Tôi đã chạy sbt-idea theo hướng dẫn trên IDEA Plugins page. Tại thời điểm này tôi hơi bối rối vì

  • không có thư mục nguồn nào được tạo - ở đâu/tôi phải tạo chúng như thế nào và SBT sẽ biết địa điểm ở đâu?
  • tại sao nó lại cố gắng sử dụng Scala 2.8.1, khi tôi đã đặt scalaVersion := "2.9.0" trong tệp build.sbt? Điều này có nghĩa là IDEA không nhận ra object HelloWorld extends App {}.
  • hướng dẫn trên trang trình cắm ở trên đề xuất thay đổi tùy chọn Trước khi khởi chạy "Cấu hình chạy (bao gồm Cấu hình chạy mặc định)". Có 13 cấu hình mặc định khác nhau cho những thứ khác nhau được liệt kê - cái nào cần thay đổi? Tôi có nên tạo một cái mới không? Những cấu hình mặc định này chỉ dành cho dự án này hay nó sẽ ảnh hưởng xấu đến tất cả các dự án khác của tôi không sử dụng SBT?

Cảm ơn.

Trả lời

16

này đã làm việc cho tôi:

Đầu tiên get SBT và các plugin gen-ý tưởng đi ...

  1. Tải SBT-launch.jar và tạo ra các kịch bản cho triển khai nó như mô tả trên SBT Github wiki.
  2. Tạo thư mục cho dự án mới của bạn, chẳng hạn như (trên linux) ~/myCode/myNewProject và đổi thành thư mục đó
  3. Chạy lệnh sbt. Điều này sẽ tải về các thư viện scala và tạo ra một thư mục 'project' và 'target'.
  4. Thay đổi thành thư mục 'project'.
  5. Tạo một file mới 'build.sbt' trong thư mục này với những dòng sau, như mô tả trên sbt-idea plugin Github wiki:

    resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/" 
    
    addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.0.0") 
    
  6. Thay đổi trở lại vào thư mục chính của dự án của bạn như ~/MyCode/myNewProject. Chạy sbt. Nó nên tải về plugin gen-idea.

  7. Từ bảng điều khiển sbt (hiện đang chạy), chạy lệnh gen-idea. Nó sẽ tạo ra các thư mục dự án IDEA. Đối với tôi, nó cũng phát ra những cảnh báo dồi dào.

Bây giờ có được IDEA SBT console Plugin đi ...

  1. mở IDEA và cài đặt "SBT" plugin từ người quản lý plugin và IDEA khởi động lại. (Lưu ý đây là plugin IDEA, không phải plugin sbt được mô tả ở trên.) Định cấu hình plugin SBT as described on its wiki (chạy cấu hình, vị trí của sbt-launch.jar, v.v.).
  2. Mở dự án IDEA mới được tạo trong IDEA.
  3. Đặt mã của bạn và những thứ khác vào thư mục mặc định dự kiến ​​như được mô tả trên sbt wiki under 'Directory Layout'. Bạn cần tự tạo các thư mục này - sbt không tự động tạo chúng. Các thư mục 'src' và 'test' phải ở cùng mức với thư mục 'project' và 'target' mà sbt đã tạo.
  4. Tạo một tệp 'build.sbt' mới và đặt nó vào ~/myCode/myProject (hoặc bất kỳ thứ gì bạn gọi nó). Kể từ khi tôi chỉ tìm ra SBT, tôi là đơn giản cho đến nay - chỉ đề cử scalatest như một sự phụ thuộc và sử dụng Scala 2.9:

    name := "myProject" 
    
    version := "0.1" 
    
    organization := "me" 
    
    libraryDependencies += "org.scalatest" % "scalatest_2.9.0" % "1.6.1" 
    
    scalaVersion := "2.9.0" 
    
  5. Nhập lệnh reload trong SBT bảng điều khiển ở dưới màn hình IDEA. Nó sẽ tải về scalatest và Scala 2.9 cho bạn. Có thể bạn cũng cần chạy 'cập nhật'.

+3

Cảm ơn bạn đã hướng dẫn chi tiết và các liên kết hữu ích. Có thể tốt hơn là đặt tệp 'build.sbt' ở bước 5 vào' ~/.sbt/plugins/'như wiki gợi ý kể từ đó bạn không phải thực hiện nó cho mọi dự án ... trên Windows bạn có để tự tạo thư mục này trong 'Users \ yourname \\', sử dụng dòng lệnh. Dù sao, bây giờ tôi đã thiết lập các thư mục theo Giao diện Thư mục trong wiki sbt, nó hoạt động tốt! –

+0

Thông tin: hoạt động tốt với sbt-0.11.2 và sbt-idea 0.11.0 – ron

0

Tôi thường đặt src vào thư mục "src/test/scala" và "src/main/scala". sbt-idea sẽ thêm thư mục này vào thư mục source/test trong ý tưởng.

sbt cần Scala 2.8.1 nhưng phiên bản này không liên quan gì đến phiên bản mã của bạn. Nếu bạn cố gắng biên dịch một số sbt nguồn sẽ tải xuống Scala 2.9.0.

+0

Ý tưởng sbt không thêm bất kỳ thư mục nguồn nào khi chạy nó. Nó đặt cả hai phiên bản của Scala trong các thư viện bên ngoài nhưng nó vẫn không nhận ra lớp App. –

4

Tôi đã viết một very quick guide về điều đó. Đó là không phải có ý định trở thành hướng dẫn SBT - không có cách nào để đánh bại số SBT Wiki cho điều đó. Nó sẽ là vô nghĩa quá, vì người ta chỉ có thể đóng góp cho wiki chính nó.

Nhưng, tôi nghĩ rằng hướng dẫn rất nhanh của tôi sẽ giúp bạn bắt đầu và chạy như bạn muốn.

Đối với việc tạo thư mục, câu trả lời tôi nhận được là SBT hy vọng IDE sẽ xử lý điều đó - tôi không thực sự thích thái độ đó, nhưng plugin có thể thực hiện công việc. Bạn sẽ thấy tôi cài đặt sbt eclipse plugin chỉ vì vậy nó sẽ làm điều đó cho tôi, mặc dù tôi sử dụng IDEA bản thân mình (khi tôi sử dụng một IDE). Ngoài ra, hãy lưu ý rằng, lý tưởng nhất là bạn sử dụng cả plugin IDEA cho SBT mà bạn đã đề cập, và plugin SBT cho IDEA. Xem here để biết danh sách các plugin.

Trừ khi plugin IDEA phát triển rất nhiều, bạn thực sự cần tạo cấu hình IDEA từ chính SBT - IDEA sẽ không "đọc" cấu hình của bạn. Đó là những gì các plugin SBT cho IDEA. Cài đặt nó và sbt gen-idea. Tôi hy vọng rằng sẽ giải quyết được vấn đề bạn đã đề cập.

Lưu ý, tuy nhiên, phiên bản Scala bạn sử dụng để biên dịch dự án và phiên bản Scala mà SBT sử dụng cho chính nó là khác nhau. Đây không phải là một vấn đề, nó là như mong đợi. Tôi không chắc chắn từ câu hỏi của bạn nếu phiên bản 2.8.1 bạn đề cập là phiên bản được sử dụng bởi SBT, hoặc một được sử dụng bởi IDEA - hoặc thậm chí một được sử dụng để biên dịch dự án của bạn, chỉ ra rằng một cái gì đó không hoạt động.

Trong đó đã làm bạn đặt ví dụ bạn đã đề cập?Bạn nên làm theo hệ thống phân cấp thư mục kiểu maven, có nghĩa là đặt nó trên src/main/scala/ và có thể là thư mục phụ liên quan đến gói đó, nếu bạn tuân theo quy ước Java.

Và cố gắng biên dịch bằng sbt, để đảm bảo rằng nó đang hoạt động, trước khi tiếp tục đến IDEA.

+0

Cảm ơn. Tôi đã thấy hướng dẫn của bạn, đó là hữu ích, nhưng tôi không biết bạn chỉ cần chạy các plugin Eclipse để làm cho các thư mục!Tôi đã không sử dụng Maven trước đây vì vậy tôi không thực sự quen thuộc với cấu trúc ở đó. Tôi đã đặt các tập tin nguồn của tôi trong thư mục 'project' và nó không hoạt động, nhưng nó làm khi tôi di chuyển chúng đến đúng nơi! –

+0

@Luigi Trong trường hợp đó, hãy xem câu hỏi "[Cấu trúc ứng dụng Scala] (http://stackoverflow.com/questions/5910791/scala-application-structure)". –

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