2012-04-06 24 views
22

Vì vậy, tôi đang thử Play 2 với Eclipse. Tôi tạo một dự án mới, biên dịch nó, chạy eclipsify và nhập nó vào Eclipse. Càng xa càng tốt.Cách làm cho Eclipse thấy những thay đổi trong Play! mẫu đã biên dịch?

Vấn đề tôi gặp phải là khi tôi thực hiện thay đổi trong mẫu Scala, bộ điều khiển Java của tôi không thể nhìn thấy nó và Eclipse đánh dấu mã là không hợp lệ. Ví dụ:

Tôi đã thêm một tham số thứ hai trong mẫu chỉ số của tôi

@(message: String, nesto:Integer) 

Khi tôi cố gắng để làm cho tập tin của tôi từ bộ điều khiển, dòng sau sẽ hiển thị một lỗi, bởi vì Eclipse vẫn nghĩ rằng index.render lấy một String.

return ok(index.render("Your new application is ready.",2)); 

Tôi đã bật không gian làm việc trong Eclipse và phát eclipsify tự động thêm thư mục classes_managed vào đường dẫn xây dựng.

Trả lời

6

tôi đã làm những điều sau đây:

  1. Như bạn đã làm, tôi bật không gian làm việc tự động làm mới (trong cài đặt, General -> Workspace, sau đó chọn "Refresh sử dụng móc mẹ đẻ hoặc tổng hợp")
  2. tôi loại bỏ các classes_managed thư mục được tạo ra bởi play eclipsify từ xây dựng con đường của tôi, và tôi đã thêm nó bằng tay sử dụng "Add folder lớp bên ngoài"

và sau đó nó làm việc cho tôi. Dường như có lỗi trong lệnh eclipsify.

+0

Chỉ cần chỉnh sửa câu trả lời, vì tôi đã sử dụng "Thêm thư mục lớp bên ngoài" thay vì "Thêm thư mục lớp" –

+1

Vẫn không đi. Phiên bản Eclipse nào bạn đã sử dụng? – Nefron

+0

Eclipse Indigo 3.7.2 –

5

Bí quyết là phải tự động xây dựng Play trong nền (các tệp mẫu hiện không được Eclipse xây dựng, vì vậy bạn cần Play để dịch các tệp đó cho bạn). Đó là tất cả giải thích chi tiết ở đây:

[chết liên kết] http://scala-ide.org/docs/tutorials/play20scalaide20/index.html

[thử một này] http://scala-ide.org/docs/tutorials/play/index.html#installing-the-scala-ide-play2-plug-in

+3

Tôi đang chạy Play with play ~ run, do đó, nó đang tạo mẫu trong nền. Nội dung trên liên kết bạn đã đăng đang hoạt động tốt khi bộ điều khiển được viết bằng Scala. – Nefron

+0

Xin lỗi, tôi bằng cách nào đó đã bỏ lỡ rằng bộ điều khiển là trong Java. –

4
  1. Run 'chơi nhật thực' trên dòng lệnh
  2. Trong Eclipse, làm mới Dự án của bạn bằng cách nhấn F5
+0

nó sẽ hoạt động hoàn hảo.thank namoo .. – hari

+0

Ngoài ra hãy chắc chắn rằng bạn nâng cấp 'sbteclipse' lên phiên bản '5.1.0' (được phát hành vào ngày 12 tháng 1 năm 2017) - nó sửa lỗi liên quan. – mkurz

1

Đối với Java Play Framework v2.4.6 (activator v1 .3.7) với Sao Hoả Eclipse:

Thay vì @(message: String, nesto:Integer), bạn đã thử điều này @(message: String)(nesto: Integer) chưa?

Vì vậy, bạn sẽ không có một "không thể giải quyết lỗi" với index.render() của bạn, bạn có thể thêm <classpathentry kind="lib" path="target/scala-2.11/classes"/> này để .classpath của bạn hoặc nhấp chuột phải vào dự án của bạn -> Build Path -> Configure Build Path -> Thêm Class Thư mục và làm cho nó trỏ đến target/scala-2.11/classes.

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