Làm cách nào để buộc IntelliJ IDEA tải lại các phần phụ thuộc từ build.sbt sau khi chúng thay đổi?


123

Tôi đang sử dụng IntelliJ IDEA 13 (Community Edition) với plugin Scala.

Lần nhập đầu tiên của tôi đối với một dự án Scala hiện có với mức độ build.sbthoạt động tốt. Các phụ thuộc thư viện đã được IDEA chọn ra. Các phần phụ thuộc bổ sung được thêm vào sau lần nhập ban đầu không được chọn, mặc dù tôi đã kiểm tra auto-importtùy chọn.

Làm cách nào để buộc IDEA tải lại các phần phụ thuộc từ đó build.sbt?


1
Tôi đã có hành vi giống hệt như bạn đang mô tả, và sau đó nó bắt đầu hoạt động mà tôi không cần làm gì cả. Tôi có ấn tượng rằng việc tích hợp sbt hiện đang hơi lộn xộn và chúng ta chỉ cần kiên nhẫn.
Nicolas Rinaudo

Vẫn không làm việc cho tôi (tháng 1 năm 2017).
qu1j0t3

Câu trả lời:


191

Bạn có thể buộc SBT tải lại các thay đổi: Mở SBT toolwindow (ở bên phải IDE) và nhấn nút refresh.

Nếu bạn sử dụng tính năng tự động nhập, bạn cần lưu tệp của mình để buộc tự động làm mới.


16
Dưới đây là làm thế nào để mở cửa sổ công cụ SBT: stackoverflow.com/questions/32374193/... (trong trường hợp bất cứ ai khác không có sẵn để tìm thấy nó)
Kaushik Acharya

12

NẾU plugin bị 'kẹt', nó sẽ giúp làm mất hiệu lực bộ nhớ cache (trong menu tệp) và khởi động lại intellij.


4

Kể từ ngày 7 tháng 12 năm 2013, vấn đề đã được giải quyết. Bạn cần cập nhật plugin Scala trong IntelliJ IDEA (điều này áp dụng cho cả phiên bản cộng đồng và phiên bản cuối cùng).

Đây là liên kết đến sự cố được mở trên trang web cộng đồng nhà phát triển JetBrains: http://devnet.jetbrains.com/thread/451395


Điều này dường như không liên quan đến câu hỏi ban đầu. Lỗi jetbrains nói "Khi tạo một dự án mới, từ một dự án SBT hiện có". Vấn đề là IntellliJ đôi khi không nhận được các thư viện mới nhất, ngay cả khi đã bật tính năng tự động nhập. Như @alefas đã chỉ ra, đôi khi bạn phải buộc tải lại (sử dụng plugin Scala từ năm 2018).
danio

3

Điều này có thể là do một ấn phẩm bị hỏng org.jetbrains:sbt-structure:latest.integrationxảy ra vào tối nay, khoảng 4 hoặc 5 giờ trước. Cho rằng bài đăng của bạn đã được 4 giờ ...

Bạn có thể xem hoạt động của cây thường xuân trong idea.log( ~/Library/Logs/IntelliJIdea13hoặc ~/Library/Logs/IdeaIC13trên OSX).

[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: org.jetbrains#sbt-structure;latest.integration: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn]  Note: Some unresolved dependencies have extra attributes.  Check that these dependencies exist with the requested attributes.
[warn]          org.jetbrains:sbt-structure:latest.integration (sbtVersion=0.13, scalaVersion=2.10)

Tôi đã mở một vé tại JetBrains.


2
Có vẻ như đó là sự cố với Ivy last.integration, sau khi kho lưu trữ sbt được chuyển sang một máy nhân bản khác. Bây giờ trong plugin Scala 0.26.323, nó giải quyết thành phiên bản plugin cấu trúc sbt chính xác (1.0.2) và mọi thứ sẽ hoạt động. Trân trọng, Alexander Podkhalyuzin.
Alefas

@Jeffrey, bạn có thể liên kết đến phiếu hỗ trợ không? Bản cập nhật mới nhất hiện thêm đúng cách các phần phụ thuộc bổ sung mới, nhưng không nhận được các thay đổi đối với phiên bản của phần phụ thuộc hiện có (tôi phải thay đổi thủ công các .iml và .idea / library / SBT_SBT_ .xml thành số phiên bản mới). Tôi muốn theo dõi trên vé đó.
David B.

1
Vé của tôi là bản sao của SCL-6340
Jeffrey Aguilera


0

Có lẽ điều này chỉ hoạt động cho một số loại dự án, nhưng trong trường hợp của tôi,

về phía Thư viện, tôi làm trong sbt:publishLocal

ở phía Máy khách nơi Thư viện đi vào, tôi nhấp vào mục menu Build -> Build (Ctrl-F9)và đôi khi, khi Tệp đang mở hoặc Intellisens chưa được cập nhật, tôi thực hiện Ctrl-Alt-Y(Mục menu File -> Synchronize) để lấy tệp phản ánh cơ sở mã được làm mới.

Không cần phải refresh all sbt projectsnhanh hơn đối với tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.