Không gian làm việc của Eclipse: Để làm gì và tại sao?


133

Tôi đã thấy, đọc và nghĩ về các cách sử dụng không gian làm việc khác nhau (trên mỗi dự án, trên mỗi ứng dụng (đa khẳng định hay không), trên mỗi ngôn ngữ chương trình, trên mỗi mục tiêu (phát triển web, plugin, ..), v.v.) Tôi vẫn nghi ngờ phương pháp tốt nhất là gì.

Dù sao có thể cung cấp một công phu, nhưng không phải là một cái nhìn sâu sắc dài về điều này?

Điều này liên quan đến rất nhiều câu hỏi phụ, có thể nói và tôi không biết tất cả các câu hỏi phụ cụ thể mà tôi nên hỏi, vì tôi không chắc mình không biết tất cả các khía cạnh của nhật thực (và không gian làm việc), nhưng Tôi sẽ cố gắng đưa ra một ví dụ về những gì tôi đang tìm kiếm:

  • Để làm gì?
    • Phát triển nhật thực có nghĩa là nó được sử dụng để làm gì?
    • Những người khác / hầu hết mọi người nghĩ gì?
    • Bạn nghĩ sao?
    • ...?
  • Tại sao?
    • Có xung đột cấu hình so với chia sẻ công đức?
    • Bất kỳ lý do không gian tập tin?
    • Hiệu suất?
    • ...?

Ồ, và tôi đang nói về trường hợp sử dụng tối thiểu cho nhà phát triển sử dụng các ngôn ngữ và giao thức khác nhau và KHÔNG nhất thiết phải tất cả chúng trong một dự án (Ví dụ: php, javascript và xml cho một số dự án, C # cho người khác, java và SQL cho những người khác, v.v.)

Chỉnh sửa 2012-11-27: Đừng hiểu sai ý tôi. Tôi không nghi ngờ việc sử dụng các không gian làm việc, tôi chỉ muốn sử dụng nó vì nó có nghĩa là hoặc nếu không thì ai sẽ nghĩ nó tốt hơn. Vậy "để làm gì?" có nghĩa là: sử dụng tốt nhất là gì? Và tại sao?" thực sự nhắm mục tiêu vào "để làm gì?", nói cách khác: cho tôi biết lý do cho câu trả lời của bạn.


14
Tôi vẫn không hiểu. Nó rõ ràng chỉ có ý nghĩa với những người đã biết những gì cho , và thật khó để họ hiểu rằng điều này không rõ ràng đối với những người khác ngoài kia.
Rafael Eyng

Tôi cũng không hiểu và tôi không đồng ý với mọi thứ bên dưới *, cũng không hoàn thành (không có tài liệu tham khảo). Tại sao tôi chưa chấp nhận câu trả lời. * Tất nhiên ở đó không phải là ý kiến ​​hay thực tiễn cá nhân. Điều đó, tôi nhận được.
điện tử

Tôi đã cố gắng trả lời nó, không phải là một câu trả lời hay nhưng tôi nghĩ tôi có thể xây dựng trên nó
Rafael Eyng 23/12/14

Câu trả lời:


43

Tôi sẽ cung cấp cho bạn tầm nhìn của tôi về một người cảm thấy rất khó chịu trong thế giới Java, mà tôi cho rằng đó cũng là trường hợp của bạn.

Nó là gì

Một không gian làm việc là một khái niệm nhóm lại với nhau:

  1. một tập hợp (bằng cách nào đó) các dự án liên quan
  2. một số cấu hình liên quan đến tất cả các dự án này
  3. một số cài đặt cho chính Eclipse

Điều này xảy ra bằng cách tạo một thư mục và đặt bên trong nó (bạn không phải làm điều đó, nó đã hoàn thành cho bạn) các tệp quản lý để thông báo cho Eclipse những thông tin này. Tất cả bạn phải làm rõ ràng là chọn thư mục nơi các tệp này sẽ được đặt. Và thư mục này không cần giống với nơi bạn đặt mã nguồn của mình - tốt nhất là nó sẽ không như vậy.

Khám phá từng mục ở trên:

  1. một tập hợp (bằng cách nào đó) các dự án liên quan

Eclipse dường như luôn được mở cùng với một không gian làm việc cụ thể, nghĩa là, nếu bạn đang ở trong không gian làm việc A và quyết định chuyển sang không gian làm việc B (Tệp> Chuyển đổi không gian làm việc), Eclipse sẽ tự đóng lại và mở lại. Tất cả các dự án được liên kết với không gian làm việc A (và đã xuất hiện trong Project Explorer) sẽ không xuất hiện nữa và các dự án được liên kết với không gian làm việc B sẽ xuất hiện. Vì vậy, dường như một dự án, được mở trong Eclipse, PHẢI được liên kết với một không gian làm việc.

Lưu ý rằng điều này không có nghĩa là mã nguồn dự án phải nằm trong không gian làm việc. Không gian làm việc, bằng cách nào đó, có liên quan đến đường dẫn vật lý của các dự án của bạn trong đĩa của bạn (có ai biết làm thế nào không? Tôi đã xem bên trong không gian làm việc để tìm một số tệp trỏ đến đường dẫn dự án, nhưng không thành công).

Bằng cách này, một dự án có thể ở bên trong nhiều hơn 1 không gian làm việc. Vì vậy, có vẻ tốt để giữ không gian làm việc và mã nguồn của bạn tách biệt.

  1. một số cấu hình liên quan đến tất cả các dự án này

Tôi nghe nói rằng một cái gì đó, như phiên bản trình biên dịch Java (như 1.7, ví dụ - Tôi không biết nếu 'phiên bản' là từ ở đây), là cấu hình cấp không gian làm việc. Nếu bạn có một vài dự án bên trong không gian làm việc của bạn và biên dịch chúng bên trong Eclipse, tất cả chúng sẽ được biên dịch với cùng một trình biên dịch Java.

  1. một số cài đặt cho chính Eclipse

Một số thứ như các ràng buộc chính của bạn cũng được lưu trữ ở cấp độ không gian làm việc. Vì vậy, nếu bạn xác định rằng tab ctrl + sẽ chuyển đổi các tab theo cách thông minh (không xếp chồng chúng), điều này sẽ chỉ bị ràng buộc với không gian làm việc hiện tại của bạn. Nếu bạn muốn sử dụng cùng một ràng buộc khóa trong không gian làm việc khác (và tôi nghĩ bạn muốn!), Có vẻ như bạn phải xuất / nhập chúng giữa các không gian làm việc (nếu đó là sự thật, IDE này được xây dựng trên một số cơ sở thực sự kỳ lạ). Đây là một liên kết về điều này .

Dường như các không gian làm việc không nhất thiết phải tương thích giữa các phiên bản Eclipse khác nhau. Bài viết này gợi ý rằng bạn đặt tên cho các không gian làm việc của bạn có chứa tên của phiên bản Eclipse.

Và, quan trọng hơn, một khi bạn chọn một thư mục là không gian làm việc của mình, đừng chạm vào bất kỳ tệp nào bên trong đó hoặc bạn gặp rắc rối.

Làm thế nào tôi nghĩ là một cách tốt để sử dụng nó

(thực ra, khi tôi viết bài này, tôi không biết cách sử dụng nó theo cách tốt, đó là lý do tại sao tôi đang tìm kiếm một câu trả lời - rằng tôi đang cố gắng lắp ráp ở đây)

  1. Tạo một thư mục cho các dự án của bạn:
    /projects

  2. Tạo một thư mục cho từng dự án và nhóm các dự án con của dự án bên trong dự án:
    /projects/proj1/subproj1_1
    /projects/proj1/subproj1_2
    /projects/proj2/subproj2_1

  3. Tạo một thư mục riêng cho không gian làm việc của bạn:
    /eclipse-workspaces

  4. Tạo không gian làm việc cho các dự án của bạn:
    /eclipse-workspaces/proj1
    /eclipse-workspaces/proj2


1
Tôi thừa nhận phần cuối cùng cần một số làm rõ. Tiểu dự án là gì, nếu không phải là một dự án? Làm thế nào để các dự án con này bù đắp cho việc được sử dụng trên các không gian làm việc khác nhau mà không sử dụng toàn bộ dự án mẹ? Trước tiên tôi cần tìm ra nó để cải thiện câu trả lời.
Rafael Eyng

2
Câu trả lời này không đóng góp cho toàn bộ câu hỏi. Tuy nhiên, đó là một thư mục bit tập trung và cũng bỏ lỡ một số tham chiếu và đối số. Tuy nhiên, đó là thông tin. Thở dài, những câu trả lời này đang trở nên khó khăn vì tất cả chúng đều đóng góp, và tôi bắt đầu nghĩ rằng mình sẽ không bao giờ có thể chấp nhận một câu trả lời. Tôi hy vọng không ai là một kẻ lập dị ở đây và chúng tôi sẽ rời khỏi nó mà không có câu trả lời được chấp nhận?
điện tử

Này @ RU-Bn. Tôi không quan tâm. Tôi chỉ ước tôi có thể giải thích Không gian làm việc của Eclipse là gì, vì vậy tôi có thể chắc chắn rằng tôi biết nó.
Rafael Eyng

Này, tôi không có ý nói câu hỏi cuối cùng với bất kỳ ai. Đó chỉ là nói chung. Có lẽ tôi nên viết nó như một bình luận trên đầu trang.
điện tử

@ RU-Bn, hoàn toàn, tôi đã không nhận nó theo cách xấu. Có lẽ tôi vừa thể hiện bản thân tồi tệ.
Rafael Eyng

37

Toàn bộ quan điểm của một không gian làm việc là nhóm một nhóm các dự án liên quan lại với nhau thường tạo nên một ứng dụng. Khung không gian làm việc đi xuống eclipse.core.resourcesplugin và nó tự nhiên bởi thiết kế có ý nghĩa.

Các dự án có bản chất, các nhà xây dựng được gắn liền với các dự án cụ thể và khi bạn thay đổi tài nguyên trong một dự án, bạn có thể thấy trong biên dịch thời gian thực hoặc các vấn đề khác trong các dự án trong cùng một không gian làm việc. Vì vậy, chiến lược tôi đề xuất là có các không gian làm việc khác nhau cho các dự án khác nhau mà bạn làm việc nhưng không có không gian làm việc trong nhật thực sẽ không có khái niệm về một tập hợp các dự án và cấu hình và sau tất cả đó là một công cụ IDE.

Nếu điều đó không có ý nghĩa, hãy hỏi Net Beans hoặc Visual Studio giải quyết vấn đề này như thế nào? Đó là cùng một chủ đề. Maven là một ví dụ điển hình, kiểm tra một nhóm các dự án maven liên quan vào không gian làm việc cho phép bạn phát triển và xem lỗi trong thời gian thực. Nếu không phải là một không gian làm việc, bạn sẽ đề nghị gì khác? Một ứng dụng RCP có thể là một con thú khác nhau tùy thuộc vào mục đích sử dụng của nó nhưng theo nghĩa IDE thực sự tôi không biết đâu sẽ là giải pháp tốt hơn không gian làm việc hoặc bối cảnh của các dự án. Chỉ là suy nghĩ của tôi. - Duncan


1
Nhưng cảm ơn câu trả lời của bạn. Nó có ý nghĩa và ít nhất tôi biết nó có nghĩa như thế nào. Bạn có thể cho tôi biết thêm chi tiết và có thể là một liên kết (đến nhật thực) về câu đầu tiên của bạn?
điện tử

5
Tôi không đồng ý rằng "điểm của không gian làm việc là nhóm một nhóm các dự án liên quan lại với nhau thường tạo nên một ứng dụng." Giả sử tôi đang phát triển hai ứng dụng, tôi có nên có hai không gian làm việc không? Thật khó chịu! Tất cả các phối cảnh tùy chỉnh, các ràng buộc chính, văn bản tự động và các tùy chọn khác được gắn với không gian làm việc. Tôi sẽ phải tạo lại chúng mỗi khi tôi bắt đầu một ứng dụng mới! Theo tôi, bạn nên có hai không gian làm việc: dev và mới nhất được phát hành. Trong không gian làm việc, bạn tạo một BỘ LÀM VIỆC cho mỗi ứng dụng. Đây là cách không gian làm việc và bộ làm việc được sử dụng.
John Henckel

2
John, Bạn sẽ làm gì nếu hai ứng dụng trong không gian làm việc của bạn là các ứng dụng RCP chẳng hạn và mỗi ứng dụng yêu cầu một nền tảng đích khác nhau hoặc một mức độ tuân thủ trình biên dịch java khác nhau Trừ khi các ứng dụng của bạn yêu cầu cấu hình thời gian chạy chính xác đặt hai ứng dụng vào một không gian làm việc sẽ gây ra vấn đề. Tôi hiểu rằng có một nhóm tùy chọn chung mà bạn muốn sử dụng, đó là lý do tại sao có tính năng xuất / nhập tùy chọn để bạn có thể thiết lập không gian làm việc mới và nhập tổ chức hoặc tùy chọn cá nhân và các cài đặt khác.
Duncan Krebs

1
Điểm thú vị @JohnHenckel! Mặc dù tôi đã có những rắc rối với bộ công việc. Có vẻ như chúng chỉ hoạt động với một số tính năng của nhật thực, mặc dù tôi đoán bạn hoàn toàn có thể thiết lập chúng theo cách thủ công (như tôi đã làm hôm qua với chế độ xem nhiệm vụ, điều này cho tôi tất cả các nhiệm vụ từ tất cả các dự án). Bạn cũng có thể làm điều đó cho các chức năng thư viện, tự động hoàn thành, các phương thức hiện có, v.v.? Tôi quan tâm hơn nữa làm thế nào bạn sử dụng bộ làm việc. @DuncanKrebs, tôi không biết tính năng nhập / xuất tùy chọn. Cảm ơn! Điều đó không giải quyết được rất nhiều về cách sử dụng không gian làm việc. Cảm ơn cả hai bạn. Và đừng dừng lại để đưa ra những tranh luận / hiểu biết!
điện tử

1
Tôi mới chuyển đến nhật thực. Trước đây tôi đã sử dụng khái niệm hệ điều hành mới lạ này được gọi là "thư mục". Một thư mục là một nơi trên hệ thống tập tin của tôi, tôi đặt một dự án. Nó có thể có các thư mục con từ đó. Bạn thậm chí có thể đặt nhiều thư mục của các dự án liên quan trong một thư mục cha. Vậy, tôi sẽ làm gì nếu không có Eclipse? Tôi sẽ sử dụng một thư mục, trình soạn thảo văn bản cơ bản, biên dịch và chạy từ dòng lệnh. Vì vậy, câu trả lời của bạn dường như mong đợi tất cả chúng ta chỉ nên biết "không gian làm việc" hữu ích như thế nào, nhưng có lẽ bạn nên làm quen với "thư mục".
Gabriel Staples

3

Về cơ bản, phạm vi của không gian làm việc được chia thành hai điểm.

Điểm đầu tiên (và chính) là nhật thực tự nó và có liên quan đến các cài đặt và cấu hình siêu dữ liệu (plugin ctr). Mỗi khi bạn tạo một dự án, nhật thực sẽ thu thập tất cả các cấu hình và lưu trữ chúng trên không gian làm việc đó và nếu bằng cách nào đó trong cùng một không gian làm việc, một dự án xung đột sẽ xuất hiện, bạn có thể mất một số chức năng hoặc thậm chí là ổn định của nhật thực.

Và thứ hai (thứ yếu) quan điểm của chiến lược phát triển người ta có thể áp dụng. Khi phạm vi chính được đáp ứng (và thành thạo) và cần điều chỉnh thêm về quan hệ dự án (như thư viện, phối cảnh ctr), sau đó bắt đầu (các) không gian làm việc riêng biệt có thể phù hợp dựa trên thói quen phát triển hoặc "hành vi" ngôn ngữ / khung có thể. Ví dụ DLTK là một con thú nên được chứa trong một cái lồng riêng. Rất nhiều phàn nàn tại các diễn đàn về việc nó ngừng hoạt động (đúng hay không hoàn toàn) và giải pháp được đề xuất là làm sạch các cài đặt của plugin tương đương khỏi không gian làm việc hiện tại.

Cá nhân, tôi thấy mình nghiêng về phân biệt ngôn ngữ hơn khi nói đến các không gian làm việc riêng biệt có liên quan đến các vấn đề đã biết đi kèm với trạng thái hiện tại của các plugin được sử dụng. Tốt nhất là tôi giữ chúng ở số lượng tối thiểu vì điều này sẽ giúp giảm bớt sự thất vọng khi các dự án trở nên ... nhiều và kiểm soát phiên bản không phải là phiên bản duy nhất bạn giữ các dự án của mình. Cuối cùng, tốc độ tải và hiệu suất là một vấn đề có thể xuất hiện nếu nhiều plugin (không cần thiết) được tải do trình bày các dự án không liên quan. Dòng dưới cùng; không có một giải pháp nào cho mọi người, không có bản in màu xanh chủ nào giải quyết được vấn đề. Đó là một cái gì đó phát triển với kinh nghiệm, Ít hơn là nhiều hơn!


DTLK có ý nghĩa gì?

Khi bạn từ bỏ trình soạn thảo văn bản có lợi cho IDE, ổ đĩa ban đầu là sự tiện lợi của tự động hoàn thành và chế độ xem thư viện (và tài liệu) của bạn để tránh ít nhất phải nói lỗi cú pháp. Trong mọi trường hợp, bạn sẽ gây nguy hiểm cho chức năng này.
Lazaros Kosmidis

1

Mặc dù tôi đã sử dụng Eclipse trong nhiều năm, nhưng "câu trả lời" này chỉ là phỏng đoán (mà tôi sẽ thử tối nay). Nếu nó bị bỏ phiếu từ sự tồn tại, thì rõ ràng tôi đã sai.

Oracle dựa vào CMake để tạo ra "Giải pháp" Visual Studio cho mã nguồn MySQL Connector C của họ. Trong Giải pháp là "Dự án" có thể được biên dịch riêng lẻ hoặc tập thể (theo Giải pháp). Mỗi Dự án có tệp tạo tệp riêng, biên dịch phần Giải pháp của nó với các cài đặt khác với các Dự án khác.

Tương tự, tôi hy vọng Không gian làm việc của Eclipse có thể chứa các Dự án tạo tệp có liên quan (Eclipse) của tôi, với một Dự án chính có các phụ thuộc biên dịch các Dự án tạo tệp độc đáo khác nhau làm điều kiện tiên quyết để xây dựng "Giải pháp" của nó. (Cấu trúc thư mục của tôi sẽ như @Rafael mô tả).

Vì vậy, tôi hy vọng một cách tốt để sử dụng Không gian làm việc là mô phỏng khả năng của Visual Studio để kết hợp các Dự án khác nhau vào một Giải pháp.

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.