2014-10-01 31 views
33

Tôi phải phát triển một plugin cho Eclipse nhưng tôi thích IntelliJ IDEA như IDE. Có thể cấu hình IDEA để phát triển plugin Eclipse không?Làm cách nào để sử dụng IntelliJ IDEA để phát triển plugin Eclipse?

+11

Tại sao bạn nên downvote? Đó là một câu hỏi hoàn toàn hợp lệ. – maba

+2

@maba Một số người chỉ muốn xem thế giới ghi – sMaN

+1

https://sites.google.com/site/javafornewbie/frameworks-tools/eclipse/eclipse-rcp-application-development-with-idea#TOC-Configure-the -IDEA-Project-Structure – Justin

Trả lời

19

Có thể sử dụng Eclipse Tycho.

Bạn sẽ sử dụng maven và hoạt động hoàn hảo với IntellIj.

Tycho là tập trung vào một cách tiếp cận Maven trung tâm biểu hiện đầu tiên để xây dựng Eclipse plug-in, các tính năng, các trang web cập nhật, ứng dụng RCP và OSGi bó. Tycho là một bộ các plugin và tiện ích mở rộng của Maven để xây dựng các gói Eclipse và các gói OSGi với Maven.

+0

Tycho vẫn chưa có bản phát hành 1.0. Tôi không chắc liệu tôi có thể sử dụng nó trong sản xuất hay không. –

+0

Tôi không hiểu tại sao điều đó lại là vấn đề. Nếu nó hoạt động cho bạn và plugin bạn phát triển có thể được sử dụng thì chỉ cần sử dụng nó. – maba

+0

Cảm ơn bạn rất nhiều –

7

Có thể sử dụng Osmorc, nhưng tôi chưa thử điều đó. Tuy nhiên, tôi có một phương thức hoạt động (sử dụng IntelliJ 2017.1, nhưng nó sẽ tương tự với các phiên bản khác). Nó không yêu cầu Eclipse Tycho, mà tôi không thể sử dụng vì plugin của tôi đã sử dụng XCore mà dường như không tương thích với Tycho.

  • Tạo các dự án trong Eclipse.
  • Tạo dự án IntelliJ của bạn.
  • Bên IntelliJ

    1. File> New> Mô-đun từ các nguồn hiện có. Chọn dự án nhật thực của bạn.
    2. Import mô-đun từ mô hình bên ngoài

      enter image description here

    3. Để không mess up dự án Eclipse, tôi chọn "Lưu hồ sơ dự án và mô-đun trong ~/IdeaProjects/MyIntelliJProject

    4. Lặp lại cho từng dự án thực
  • Mở cấu trúc dự án (Ctrl + Alt +phím Shift +S)

  • Trong "Global Libraries" (hoặc thậm chí chỉ cần Libraries), thêm một thư viện Java mới.
  • Chọn thư mục /opt/eclipse/plugins (hoặc bất kỳ nơi nào nhật thực được cài đặt)
  • Đảm bảo mỗi mô-đun có thư viện ECLIPSE này làm phụ thuộc cuối cùng.

Tại thời điểm này, bạn sẽ có thể mã và chạy thử nghiệm trong IntelliJ, nhưng để thực sự chạy plugin, bạn phải sử dụng Eclipse. Đó là một chút lộn xộn, mặc dù.

Giải pháp của tôi là để chạy các lệnh tương tự mà Eclipse làm khi bạn chạy plugin của bạn:

  • Nhận plugin BashSupport IntelliJ (có thể phải là cái gì khác trên Windows, có lẽ bạn có thể chạy một tập tin batch)
  • Trong Eclipse, hãy chạy plugin của bạn (Chạy ứng dụng Eclipse).
  • Mở phối cảnh Gỡ lỗi. Bạn sẽ thấy một cái gì đó như thế này:

    Debug stack

  • Nhấp chuột phải> properties trên /usr/lib/jvm/... (có thể khác Java JVM)

  • Sao chép Command Line:

    Process Properties

  • Ở những nơi khác, trong trình chỉnh sửa yêu thích của bạn, tạo một tệp bash mới (tôi đặt tệp này trong thư mục dự án IntelliJ của tôi) và dán trong đó.

  • Lưu ý rằng khi Eclipse chạy lệnh, nó chạy từ thư mục hoạt động /opt/eclipse/ (hoặc bất kỳ nơi nào nhật thực được cài đặt), vì vậy chúng tôi cần thêm cd /opt/eclipse/ trước. Hãy làm điều đó trong một lớp vỏ mới cũng như:

    (cd /opt/eclipse && /usr/lib/jvm/java-8-oracle/bin/java ...) 
    

    Nếu kịch bản bash này được chạy, nó phải là giống như nếu chúng tôi chạy từ Eclipse.

  • Trong IntelliJ, tạo ra một cấu hình Bash chạy mới (Alt +phím Shift +F10> Edit Run Configurations). Làm cho trường "Tập lệnh:" chứa đường dẫn đến tệp bash mà chúng tôi vừa tạo.

    Ngoài ra, hãy thêm "Xây dựng dự án" vào tùy chọn "Trước khi khởi chạy".

    Ngoài ra, đánh dấu vào ô "Chỉ một cá thể".

Nếu bây giờ chúng tôi chạy cấu hình đó, nó sẽ hoạt động. Tuy nhiên, chúng tôi vẫn không thể gỡ lỗi từ bên trong IntelliJ. Như vậy sẽ cố rằng:

  • Tạo một cấu hình chạy IntelliJ mới của loại "từ xa", đánh dấu nó như là "dụ đơn chỉ"
  • Copy "đối số dòng lệnh để chạy JVM từ xa" này. Đối với tôi đó là

    -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 
    

    Tôi thích quy trình làm việc cho suspend=y tốt hơn; về cơ bản nó có nghĩa là ứng dụng nhật thực sẽ không khởi động cho đến khi chúng tôi đính kèm trình gỡ lỗi.

  • Sao chép tập tin bash của bạn và thêm những lập luận này:

    (cd /opt/eclipse && /usr/lib/jvm/java-8-oracle/bin/java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 ...) 
    
  • Thêm một cấu hình chạy Bash cho IntelliJ chạy kịch bản mới này (và cũng có thể chạy "Xây dựng dự án" trước, và là "Single dụ chỉ ").

Bây giờ, để gỡ lỗi Plugin Eclipse của bạn, chạy Bash Cấu hình Debug, sau đó chạy Remote Configuration của bạn.

Cuối cùng, đây là những gì cấu hình chạy của tôi trông giống như:

enter image description here

Tại thời điểm này, điều duy nhất Eclipse là cần thiết cho được chỉnh sửa .xcore tác phẩm của tôi kể từ Eclipse tạo ra mã Java từ đó, và XCore không có cách nào để chạy từ thiết bị đầu cuối.

+0

Có vấn đề bạn nên bỏ phiếu cho: https: //youtrack.jetbrains. com/issue/IDEA-124520 –

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