143

Tôi mới bắt đầu với Scala / LiftWeb / Sbt đang phát triển và tôi muốn nhập một dự án Sbt trong IntelliJ Idea. Trên thực tế, tôi đã quản lý để nhập dự án của mình theo hai cách khác nhau:

1) với Maven. Tôi đã tạo một dự án Maven và trên hết tôi đã tạo một dự án Sbt, sau đó tôi đã nhập vào IntelliJ. Sau đó tôi có thể dễ dàng khởi động, dừng máy chủ cầu cảng và làm những việc khác. Nhưng đó không phải là điều tôi muốn. Tôi muốn làm những thứ tương tự, chỉ cần Maven miễn phí. Điều đó dẫn tôi đến

2) với Eclipse. Vì vậy, tôi đã tạo một dự án Sbt mới (với một đoạn script nhỏ tôi đã viết, cấu hình dự án Sbt thành WebProject). Sau đó, tôi đã sử dụng plugin sbt-eclipsify để 'chuyển đổi' dự án cho Eclipse, sau đó tôi đã nhập vào IntelliJ (nguồn hiện có -> nhật thực). Nhưng vấn đề bắt đầu từ đây: Tôi không thể làm cho plugin IntelliJ Sbt hoạt động.

Bất cứ ai có thể giúp tôi với điều này?

|
  • Đối với ai đó cần một câu trả lời nhanh hoặc nếu yêu cầu cấp bách của nó, chỉ cần truy cập github và tìm một dự án scala đơn giản. Tải về và sau đó nhập vào IDE của bạn. Bạn sẽ có thể truy cập vào dự án scala. Thời gian vui vẻ

    – Trần Thiên Hưng 16:03:59 02/11/2016
170

Có ba cách cơ bản để tạo dự án - các phiên bản hiện đại của IntelliJ có thể nhập dự án sbt ra khỏi hộp, nếu không, bạn có thể sử dụng plugin sbt để tạo dự án IntelliJ hoặc sử dụng plugin IntelliJ Scala để tạo dự án sbt. Các tính năng cơ bản hoạt động tốt khi sử dụng cả hai giải pháp, một số bản dựng phức tạp có thể có vấn đề, vì vậy hãy thử các công cụ khác để xem nó có hoạt động ở đó không.

IntelliJ

IntelliJ IDEA đã trở nên tốt hơn rất nhiều trong những ngày này. Phiên bản hiện tại (14.0.2) hỗ trợ các dự án sbt ra khỏi hộp với plugin Scala. Chỉ cần cài đặt plugin và bạn sẽ có thể mở các dự án Scala / sbt mà không gặp rắc rối nào.

Với plugin, chỉ cần trỏ vào một dự án sbt và IDEA sẽ cung cấp cho bạn một trình hướng dẫn để mở loại dự án đó.

Plugin IntelliJ Scala

Có thể tìm thấy plugin IntelliJ tại đây http://confluence.jetbrains.com/display/SCA/Scala+Plugin+for+IntelliJ+IDEA hoặc có thể được cài đặt directoly từ trong IDE bằng cách sử dụng hộp thoại Cài đặt -> Plugins. Sau đó, người ta chỉ có thể thực hiện Tệp -> Dự án mới -> Scala -> dựa trên SBT. IntelliJ sẽ tạo build.sbt cơ bản, tải xuống các phụ thuộc cần thiết và mở dự án.

Plugin SBT

Plugin Sbt tạo dự án ý tưởng dựa trên các tệp sbt có thể được tìm thấy ở đây: https://github.com/mpeltonen/sbt-idea

SBT 12.0+ & 13.0+

Đơn giản chỉ cần thêm addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.2")vào của bạn build.sbt; không cần giải quyết thêm.

Các phiên bản cũ hơn:

SBT 0,11+

Tạo và thêm các dòng sau vào ~/.sbt/plugins/build.sbtORPROJECT_DIR/project/plugins.sbt

resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"

addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.6.0")

Sử dụng gen-ideatrong sbt để tạo tệp dự án IDEA.

Theo mặc định, các trình phân loại (tức là nguồn và javadocs) của phụ thuộc sbt và thư viện được tải nếu được tìm thấy và các tham chiếu được thêm vào tệp dự án IDEA. Nếu bạn không muốn tải xuống / tham khảo chúng, hãy sử dụng lệnh gen-idea no-classifiers no-sbt-classifiers.


SBT 0.10.1 (theo tác giả plugin, 0.10.0 sẽ không hoạt động!)

Tạo và thêm các dòng sau vào ~ / .sbt / plugins / build.sbt:

resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"

libraryDependencies += "com.github.mpeltonen" %% "sbt-idea" % "0.10.0"

Sử dụng gen-ideatác vụ sbt để tạo tệp dự án IDEA.

Theo mặc định, các trình phân loại (tức là nguồn và javadocs) của phụ thuộc sbt và thư viện được tải nếu được tìm thấy và các tham chiếu được thêm vào tệp dự án IDEA. Nếu bạn không muốn tải xuống / tham khảo chúng, hãy sử dụng lệnh gen-idea no-classifiers no-sbt-classifiers.


SBT 0,7

Để sử dụng nó, chỉ cần chạy nó từ shell sbt của bạn, nó sẽ sử dụng plugin như một chương trình bên ngoài:

 > *sbtIdeaRepo at http://mpeltonen.github.com/maven/
 > *idea is com.github.mpeltonen sbt-idea-processor 0.4.0
 ...
 > update
 ...
 > idea
 ...

Bạn cũng có thể thêm đặc điểm trong định nghĩa dự án của bạn, như bạn muốn:

import sbt._
class MyProject(info: ProjectInfo) extends ParentProject(info) with IdeaProject {
  lazy val mySubProject = project("my-subproject", "my-subproject", new DefaultProject(_) with IdeaProject)
   // ...
}
|
11

Để bây giờ tôi làm điều này bằng tay. Nó khá đơn giản.

  1. Tạo dự án với SBT
  2. Tạo một dự án IDEA mới với cùng một đường dẫn gốc
  3. Tạo một mô-đun với cùng một đường dẫn gốc
  4. Đặt src / main / scala làm đường dẫn src trên mô-đun
  5. Đặt src / test / scala làm đường dẫn kiểm tra trên mô-đun
  6. Thêm scala-library.jar làm thư viện
  7. Thêm lib (nếu có) như một thư mục jar trong thư viện mô-đun
  8. Thêm lib_managed / compile (nếu có) dưới dạng thư mục jar trong thư viện mô-đun
  9. Thêm lib_managed / test (nếu có) như một thư mục jar trong thư viện mô-đun

Đó là từ bộ nhớ. Sẽ tốt hơn nếu nó được tự động hóa, nhưng nó không phải là vấn đề lớn như bây giờ.

Một lưu ý thận trọng: Cách tiếp cận trên không hoạt động tốt với sbt trường học mới, tức là phiên bản 0.10 trở lên, vì nó không sao chép phụ thuộc vào lib_managed theo mặc định. Bạn có thể thêm

retrieveManaged := true

vào build.sbt của bạn để làm cho nó sao chép các phụ thuộc vào lib_managed.

|
  • 1

    Nhưng, bạn có bắt đầu dự án (cầu cảng) của mình từ IntelliJ hoặc từ một thiết bị đầu cuối không? Tôi không thể thiết lập trình khởi chạy / trình biên dịch dự án từ IDE.

    – Tạ Phương Lan 04:30:06 23/11/2010
  • 1

    Một điều nữa: Tôi đã làm mọi thứ bạn đã viết, nhưng IntelliJ đang nói "Không thể giải quyết ký hiệu ne" cho việc nhập "nhập net.liftweb.LiftRules"

    – Dương Thuận Hòa 04:34:11 23/11/2010
  • 1

    Tôi quản lý để có được xung quanh nhập khẩu. Tôi đã phải nhập / lib_managed / biên dịch thay vì / lib_managed

    – Tạ Ý Nhi 04:59:11 23/11/2010
  • 1

    Trả lời rút lại! Sử dụng plugin sbt-idea.

    – Trịnh Việt Nhi 04:58:04 06/12/2010
7

Tempus fugit và IntelliJ IDEA đã trở nên tốt hơn rất nhiều trong những ngày này. Rốt cuộc là năm 2015 phải không?

Phải nói rằng, phiên bản mới nhất của IntelliJ IDEA 14.0.2 hỗ trợ các dự án sbt ra khỏi hộp với plugin Scala . Chỉ cần cài đặt plugin và bạn sẽ có thể mở các dự án Scala / sbt mà không gặp nhiều rắc rối.

Tôi đang sử dụng phiên bản Early Access của plugin là 1.2.67.6.EAP tại thời điểm viết bài.

Với plugin chỉ vào một dự án sbt và IDEA sẽ cung cấp cho bạn một trình hướng dẫn để mở loại dự án đó.

Về ý tưởng sbt trong sbt 0.12.4

Đối với sbt 0.12.4 , tệp cấu hình plugin toàn hệ thống - ~/.sbt/plugins/build.sbthoặc PROJECT_DIR/project/plugins.sbt- nên có các dòng sau:

resolvers += "Sonatype snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/"

addSbtPlugin(dependency="com.github.mpeltonen" % "sbt-idea" % "1.5.0-SNAPSHOT")

Chạy sbt gen-ideađể tạo tập tin dự án IDEA.

Đọc trang web plugin sbt-idea để biết thêm thông tin cập nhật. Bạn cũng có thể thấy mục blog của tôi Nhập dự án dựa trên sbt vào IntelliJ IDEA 13 (với sbt-idea, Scala 2.11 và sbt 0.12) hữu ích.

|
  • 1

    Khi tạo dự án mới. Sau khi sbt gen-idea dự án trống. Không có cấu trúc, không phải src, thư mục thử nghiệm. Và nó thật khập khiễng ..

    – Tạ Phương Lan 21:26:42 17/10/2013
  • 1

    Làm thế nào bạn tạo ra dự án? Cấu trúc thư mục và các tập tin bên trong là gì?

    – Dương Thuận Hòa 23:35:35 19/10/2013
  • 1

    Nó chỉ là trống rỗng. Tôi đã phải đặt nó "chính / scala / src" bằng tay. Nhưng tôi có thể sống với điều đó.

    – Tạ Ý Nhi 01:58:21 20/10/2013
  • 1

    Bạn có thể muốn sử dụng github.com/n8han/giter8 như một phương tiện để khởi động một dự án sbt. sbt có thể có một thư mục trống làm dự án chính và main / scala / src là không cần thiết - chỉ cần đặt các tệp Scala của bạn vào thư mục chính để sbt chọn chúng.

    – Trịnh Việt Nhi 11:33:33 20/10/2013
5

Đối với sbt 0,7

Xem câu trả lời ở nơi khác trên trang này .

Đối với sbt 0,10

Nhân bản và xây dựng ý tưởng sbt của Ismael:

git clone https://github.com/ijuma/sbt-idea.git
cd sbt-idea
git checkout sbt-0.10
./sbt package

Tạo một thư mục lib plugin sbt nếu bạn chưa có

mkdir -p  ~/.sbt/plugins/lib

Sao chép bình được xây dựng ở bước một vào đây

cp sbt-idea/target/scala-2.8.1.final/*.jar ~/.sbt/plugins/lib

Khởi động lại hoặc tải lại sbt, sau đó bạn có thể chạy gen-idea(hoặc gen-idea with-classifiersnếu bạn muốn nguồn và javadoc trong intelliJ)

Nguồn: Gợi ý của nhóm về nhóm tin nhắn .

Trong IntelliJ IDEA 13.x

Bạn có thể mở một dự án dựa trên SBT trong IDEA ngày nay. Nó sẽ tạo dự án và mô-đun cần thiết và luôn cập nhật các phụ thuộc của bạn bất cứ khi nào bạn thay đổi tập lệnh xây dựng.

|
2

Các câu trả lời đã cũ cho năm 2014. Trong IntelliJ 13.x , plugin Scala là ver 0.41.2 (đã bao gồm SBT).

Phiên bản SBT của tôi là 0.13,5 (thiết bị đầu cuối sbt sbtVersion:)

Chuyển đến thư mục gốc của dự án và nhập vào thiết bị đầu cuối

sbt idea

Bạn sẽ thấy hai thư mục ẩn mới .idea.idea_modules .

Sau đó trong IntelliJ, File> Open> chọn dự án. Nó sẽ mở dự án mà không có bất kỳ vấn đề.

|
2

Tôi vừa trải qua tất cả nỗi đau này. Tôi dành nhiều ngày cố gắng để có được một môi trường chấp nhận được và đã đi đến kết luận rằng ENSIME, SBT và JRebel sẽ là môi trường phát triển của tôi trong một thời gian. Vâng, nó sẽ quay trở lại Emacs, nhưng ENSIME biến nó thành một chút hoặc một ý tưởng với tái cấu trúc, hỗ trợ gỡ lỗi, điều hướng, v.v. Nó không ở đâu tốt như Eclipse (Java), nhưng trừ khi các plugin scala hoạt động tốt hơn thì đó là tốt nhất chúng ta có.

Cho đến khi các môi trường phát triển Scala bắt đầu hoạt động (Eclipse hoặc IntelliJ), tôi sẽ không bận tâm. Họ chỉ là quá lỗi.

Xem các cuộc thảo luận trên các trang web thang máy.

http://groups.google.com/group/liftweb/browse_thread/thread/6e38ae7396575052#

Trong chuỗi đó, có một liên kết đến một HOWTO cho IntelliJ, nhưng mặc dù nó hoạt động tốt, có nhiều vấn đề khiến nó ít hữu ích hơn một chút.

http://blog.morroni.com/2010/07/14/setup-intellij-9-for-lift-framework-development/comment-page-1/

|
  • 1

    Tôi đã đọc nó. Bài viết này sử dụng maven, mà tôi quản lý để làm việc. Bây giờ tôi đang cố gắng làm điều tương tự, chỉ với sbt, không có maven.

    – Dong Tuoi 04:35:19 23/11/2010
  • 1

    Tôi có thể thiết lập dự án cho IntelliJ để sử dụng nó, nhưng không thể làm việc với trình biên dịch / launcher sbt.

    – Tạ Quỳnh Thanh 04:41:36 23/11/2010
  • 1

    Theo như ENSIME có liên quan: có dễ dàng để làm việc không? Tôi đã thử một lần, nhưng tôi chưa bao giờ làm việc với emacs, vì vậy nó hơi khó với tôi. đang làm việc với emacs một tiền đề?

    – Hoàng Lâm Dũng 04:43:31 23/11/2010
  • 1

    Liên kết sau sẽ đưa bạn qua thiết lập SBT. Điều này làm việc với tôi, nhưng một lần nữa làm việc với SBT và IntelliJ theo cách không tích hợp thực sự giống như sử dụng hai công cụ riêng biệt, mà ENSIME với SBT tự nhiên hơn nhiều. heikoseeberger.blogspot.com/2010/08/ khăn

    – Lý Thu Hà 16:16:28 23/11/2010
0

Trước khi bạn bắt đầu tạo dự án SBT của mình, hãy đảm bảo rằng plugin Scala được tải xuống và kích hoạt trong IntelliJ IDEA.

liên kết dưới đây giải thích mọi thứ bạn cần biết.

https://www.jetbrains.com/help/idea/2016.1/getting-started-with-sbt.html

|

Câu trả lời của bạn (> 20 ký tự)

Bằng cách click "Đăng trả lời", bạn đồng ý với Điều khoản dịch vụ, Chính sách bảo mật and Chính sách cookie của chúng tôi.

Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ hoặc hỏi câu hỏi của bạn.