Eclipse Workspaces : 무엇을 위해 왜?


133

작업 공간 (프로젝트, 응용 프로그램 (멀티 어셈블리 여부), 프로그램 언어, 대상 (웹 개발, 플러그인 등)을 사용하는 다양한 방법을보고 읽고 생각했습니다.) 여전히 최선의 접근법이 무엇인지 의심하고 있습니다.

어쨌든 정교하지만 페이지에 대한 긴 통찰력을 줄 수 있습니까?

이것은 많은 하위 질문과 관련이 있으며, 말해야 할 특정 하위 질문을 모두 모릅니다. 왜냐하면 일식 (및 작업 공간)의 모든 측면을 모릅니다. 나는 내가 찾고있는 것에 대한 예를 제시하려고 노력할 것이다.

  • 무엇 때문에?
    • 이클립스 개발은 그것이 사용되었다는 것을 의미 했습니까?
    • 다른 사람 / 대부분의 사람들은 어떻게 생각합니까?
    • 어떻게 생각해?
    • ...?
  • 왜?
    • 구성 충돌과 장점이 있습니까?
    • 파일 공간 이유가 있습니까?
    • 공연?
    • ...?

아, 그리고 다른 언어와 프로토콜을 사용하는 개발자의 최소 사용 사례에 대해 말하고 있으며 하나의 프로젝트 (예 : php, javascript 및 xml, 일부 프로젝트의 경우 C #, 여전히 java의 경우) 기타 등등.)

2012-11-27 편집 : 실수하지 마십시오. 나는 작업 공간의 사용을 의심하지 않습니다. 나는 누군가가 더 잘 생각할 수 있다면 그대로 사용하고 싶습니다. 그래서 "무엇을 위해?" 의미 : 가장 좋은 사용법은 무엇입니까? 그리고 왜?" 실제로 "무엇을 위해?"를 목표로합니다. 즉, 귀하의 답변에 대한 이유를 알려주십시오.


14
나는 아직도 그것을 얻지 못한다. 이미 무엇을 알고 있는지 아는 사람들에게는 분명히 의미가 있으며, 다른 사람들에게는 이것이 분명하지 않다는 것을 이해하기가 어렵습니다.
Rafael Eyng

나는 그것을 얻지 못하고 아래의 모든 것에 동의하지 않습니다 * 또는 참조가 아닙니다. 왜 아직 답변을받지 못했습니다. * 물론 의견이나 개인적 관행이 아닌 곳에 있습니다. 알겠습니다
e-motiv

나는 대답을 시도했지만 아주 좋은 대답은 아니지만 그 위에 쌓을 수 있다고 생각합니다.
Rafael Eyng

답변:


43

Java 세계에서 매우 불편하다고 느끼는 사람에 대한 내 비전을 알려 드리겠습니다.이 또한 귀하의 경우입니다.

그것은 무엇인가

작업 공간은 그룹화의 개념입니다.

  1. (어떻게 든) 관련 프로젝트 세트
  2. 이 모든 프로젝트와 관련된 일부 구성
  3. Eclipse 자체의 일부 설정

이것은 Eclipse에 이러한 정보를 알려주는 디렉토리를 만들고 (내가 할 필요는 없으며, 당신을 위해 완료 된) 디렉토리를 만들어서 발생합니다. 이러한 파일을 저장할 폴더를 명시 적으로 지정하기 만하면됩니다. 이 폴더는 소스 코드를 넣는 위치와 같을 필요는 없습니다. 우선적으로는 그렇지 않습니다.

위의 각 항목을 탐색하십시오.

  1. (어떻게 든) 관련 프로젝트 세트

Eclipse는 항상 특정 작업 공간과 관련하여 열린 것처럼 보입니다. 즉, 작업 공간 A에 있고 작업 공간 B 로 전환하기로 결정한 경우 (파일> 작업 공간 전환) Eclipse가 자체 닫히고 다시 열립니다. 작업 공간 A 와 연관되고 프로젝트 탐색기에 나타나는 모든 프로젝트 가 더 이상 나타나지 않으며 이제 작업 공간 B 와 연관된 프로젝트 가 나타납니다. 따라서 Eclipse에서 열려있는 프로젝트는 반드시 작업 공간과 관련이 있어야 합니다.

이것이 프로젝트 소스 코드가 작업 공간 안에 있어야한다는 것을 의미하지는 않습니다. 작업 공간은 어떻게 든 디스크에있는 프로젝트의 실제 경로와 관련이 있습니다 (아무도 알고 있습니까? 작업 공간 내부에서 성공하지 않고 프로젝트 경로를 가리키는 일부 파일을 검색했습니다).

이런 방식으로 프로젝트는 한 번에 둘 이상의 작업 공간에있을 수 있습니다. 따라서 작업 공간과 소스 코드를 분리하여 보관하는 것이 좋습니다.

  1. 이 모든 프로젝트와 관련된 일부 구성

Java 컴파일러 버전 (예 : 1.7과 같은 것- 'version'이 여기서 단어인지 모르겠습니다)과 같은 것이 작업 공간 수준 구성이라고 들었습니다. 작업 공간에 여러 프로젝트가 있고 Eclipse 내부에서 컴파일하면 모든 프로젝트가 동일한 Java 컴파일러로 컴파일됩니다.

  1. Eclipse 자체의 일부 설정

키 바인딩과 같은 일부 작업 영역 수준에도 저장됩니다. 따라서 ctrl + tab이 탭을 스마트하게 (스태킹하지 않고) 전환하도록 정의하면 현재 작업 공간에만 바인딩됩니다. 다른 작업 공간에서 동일한 키 바인딩을 사용하려면 (및 원한다고 생각합니다!) 작업 공간간에 내보내거나 가져와야하는 것처럼 보입니다 (그렇다면이 IDE는 정말 이상한 건물 위에 구축되었습니다). 여기에 링크가 있습니다.

또한 작업 공간이 서로 다른 Eclipse 버전간에 호환되는 것은 아닙니다. 이 기사 에서는 Eclipse 버전의 이름이 포함 된 작업 공간의 이름을 지정하도록 제안합니다.

더 중요한 것은 폴더를 작업 공간으로 선택하면 내부의 파일을 만지지 마십시오.

내가 그것을 사용하는 좋은 방법이라고 생각하는 방법

(실제로 이것을 작성하면서 이것을 잘 사용하는 방법을 모르겠습니다. 그래서 저는 답을 찾고있었습니다 – 여기에 모 으려고합니다)

  1. 프로젝트 폴더를 만듭니다.
    /projects

  2. 각 프로젝트에 대한 폴더를 작성하고 그 안에 프로젝트의 하위 프로젝트를 그룹화하십시오.
    /projects/proj1/subproj1_1
    /projects/proj1/subproj1_2
    /projects/proj2/subproj2_1

  3. 작업 공간을위한 별도의 폴더를 작성하십시오.
    /eclipse-workspaces

  4. 프로젝트의 작업 공간을 작성하십시오.
    /eclipse-workspaces/proj1
    /eclipse-workspaces/proj2


1
마지막 섹션에 약간의 설명이 필요하다는 것을 인정합니다. 프로젝트 자체가 아닌 경우 하위 프로젝트 란 무엇입니까? 이러한 하위 프로젝트는 전체 상위 프로젝트를 사용하지 않고 다른 작업 공간에서 사용되도록 어떻게 구성합니까? 먼저 답을 개선하기 위해 찾아야합니다.
Rafael Eyng

2
이 답변은 전체 질문에 기여합니다. 그러나 약간 폴더에 중점을두고 있으며 일부 참조 및 인수가 누락되었습니다. 그럼에도 불구하고 유익한 정보입니다. 한숨,이 답변은 모두 기여하기 때문에 어려워지고 있으며, 나는 결코 하나의 답변을 받아 들일 수 없을 것이라고 생각하기 시작했습니다. 나는 여기에 아무도 포인트 괴물이 아니기를 바랍니다. 우리는 대답없이 받아 들일 것입니다?
e-motiv

안녕하세요 @ RU-Bn. 나는 요점에 있지 않다. Eclipse Workspace가 무엇인지 설명 할 수 있기를 바랍니다.
Rafael Eyng

이봐, 난 그 누구에게도 마지막 질문을 의미하지 않았다. 그것은 단지 일반적인 것이 었습니다. 어쩌면 나는 위에 주석으로 써야했을 것입니다.
e-motiv

@ RU-Bn, 절대적으로, 나는 그것을 나쁜 길로 받아들이지 않았습니다. 아마 나 자신을 나쁘게 표현했을 수도 있습니다.
Rafael Eyng

37

작업 공간의 요점은 일반적으로 응용 프로그램을 구성하는 관련 프로젝트 세트를 그룹화하는 것입니다. 작업 공간 프레임 워크는 eclipse.core.resources플러그인으로 제공되며 설계 상 당연히 의미가 있습니다.

프로젝트에는 특성이 있으며 빌더는 특정 프로젝트에 첨부되며 한 프로젝트에서 자원을 변경하면 동일한 작업 공간에있는 프로젝트의 실시간 컴파일 또는 기타 문제에서 볼 수 있습니다. 따라서 내가 제안하는 전략은 작업하는 프로젝트마다 다른 작업 공간이 있지만 일식에 작업 공간이 없으면 프로젝트 및 구성 모음에 대한 개념이 없으며 결국 IDE 도구입니다.

이것이 의미가 없다면 Net Beans 또는 Visual Studio가 어떻게 이것을 해결합니까? 같은 주제입니다. Maven은 좋은 예입니다. 관련 Maven 프로젝트 그룹을 작업 공간으로 체크 아웃하면 실시간으로 오류를 개발하고 볼 수 있습니다. 작업 공간이 아닌 경우 다른 제안을 하시겠습니까? RCP 응용 프로그램은 용도에 따라 다른 짐승이 될 수 있지만 진정한 IDE 의미에서 프로젝트의 작업 공간이나 컨텍스트보다 더 나은 솔루션이 무엇인지 알 수 없습니다. 그냥 내 생각 -던컨


1
그러나 답변 주셔서 감사합니다. 그것은 의미가 있고 적어도 그것이 어떻게 의미하는지 알고 있습니다. 첫 번째 문장에 대한 자세한 내용과 링크 (일식 링크)를 알려주시겠습니까?
e-motiv

5
"작업 공간의 요점은 일반적으로 응용 프로그램을 구성하는 관련 프로젝트 세트를 함께 그룹화하는 것"이라는 데 동의하지 않습니다. 두 개의 응용 프로그램을 개발한다고 가정합니다. 두 개의 작업 공간이 있어야합니까? 짜증나! 모든 사용자 지정 관점, 키 바인딩, 자동 텍스트 및 기타 기본 설정은 작업 영역과 연결되어 있습니다. 새 응용 프로그램을 시작할 때마다 다시 작성해야합니다! 제 생각에는 개발자와 최신 릴리스의 두 가지 작업 공간이 있어야합니다. 작업 공간 내에서 각 애플리케이션에 대한 작업 세트를 작성합니다. 이것은 작업 공간과 작업 세트가 사용되는 방식입니다.
존 헨켈

2
John, 작업 공간에있는 두 개의 응용 프로그램이 RCP 응용 프로그램이고 각각 ​​다른 대상 플랫폼 또는 다른 Java 컴파일러 규정 준수 수준을 요구하는 경우 어떻게해야합니까 하나의 작업 공간에서 문제가 발생합니다. 사용하려는 공통된 환경 설정 세트를 알고 있음을 이해합니다. 따라서 환경 설정 내보내기 / 가져 오기 기능이있어 새 작업 공간을 설정하고 조직 또는 개인 환경 설정 및 기타 설정을 가져올 수 있습니다.
던컨 크렙스

1
재미있는 포인트 @JohnHenckel! 작업 세트에 문제가 있었지만. 그것은 그들이 일식의 일부 기능에서만 작동하는 것처럼 보이지만, 모든 작업을 수동으로 설정할 수 있다고 생각합니다 (어제 작업보기로 모든 프로젝트의 모든 작업을 수행했습니다). 라이브러리 함수, 자동 완성, 기존 방법 등에 대해서도 그렇게 할 수 있습니까? 작업 세트를 사용하는 방법에 더 관심이 있습니다. @ DuncanKrebs, 환경 설정의 가져 오기 / 내보내기 기능을 몰랐습니다. 감사! 작업 공간을 사용하는 방법을 많이 해결합니다. 고마워요 그리고 논쟁 / 통찰력을 버리지 마십시오!
e-motiv

1
방금 일식으로 옮겼습니다. 이전에는 "폴더"라는이 새로운 운영 체제 개념을 사용해 왔습니다. 폴더는 파일 시스템에서 프로젝트를 배치하는 장소입니다. 거기에서 하위 폴더를 가질 수 있습니다. 하나의 상위 폴더 안에 관련 프로젝트의 여러 폴더를 배치 할 수도 있습니다. 그렇다면 이클립스없이 어떻게해야합니까? 기본 텍스트 편집기 인 폴더를 사용하고 명령 줄에서 컴파일하고 실행합니다. 따라서 귀하의 답변은 "작업 공간"이 얼마나 유용한 지 모두 알고 있어야하지만 "폴더"에 익숙해야 할 것으로 예상됩니다.
Gabriel Staples

3

기본적으로 작업 영역의 범위는 두 지점으로 나뉩니다.

첫 번째 포인트 (및 기본)는 자체 일식이며 설정 및 메타 데이터 구성 (플러그인 ctr)과 관련이 있습니다. 프로젝트를 작성할 때마다 eclipse는 모든 구성을 수집하여 해당 작업 공간에 저장하며, 동일한 작업 공간에 충돌하는 프로젝트가 존재하는 경우 일부 기능이 누락되거나 자체적으로 Eclipse의 안정성이 저하 될 수 있습니다.

그리고 두 번째 (2 차) 개발 전략의 관점에서 채택 할 수 있습니다. 기본 범위가 충족되고 마스터되면 프로젝트 관계 (라이브러리, 관점 ctr)와 관련하여 추가 조정이 필요한 경우 개발 습관 또는 가능한 언어 / 프레임 워크 "동작"에 따라 별도의 작업 영역을 시작할 수 있습니다. 예를 들어 DLTK는 별도의 케이지에 포함되어야하는 짐승입니다. 포럼에서 제대로 작동하지 않았기 때문에 많은 불만이 있었고 현재 해결책은 현재 작업 공간에서 동등한 플러그인의 설정을 정리하는 것이 었습니다.

개인적으로, 플러그인의 현재 상태와 함께 제공되는 알려진 문제와 관련된 별도의 작업 공간과 관련하여 언어 구분에 더 의존하고 있음을 알았습니다. 프로젝트를 만들 때 좌절감을 줄이려면 최소한의 숫자를 유지하는 것이 바람직합니다. 마지막으로, 로딩 속도와 성능은 관련없는 프로젝트로 인해 많은 (필요하지 않은) 플러그인이로드되면 발생할 수있는 문제입니다. 결론; 모든 것에 대한 해결책은 하나도 없으며, 문제를 해결하는 마스터 블루 프린트도 없습니다. 경험과 함께 성장하는 것이지만 적을수록 좋습니다!


DTLK의 의미는 무엇입니까?

IDE에 유리하게 텍스트 편집기를 포기했을 때, 초기 드라이브는 자동 완성의 편리함과 적어도 구문 오류를 피하기 위해 라이브러리 (및 문서)의보기입니다. 어떤 상황에서도이 기능을 위태롭게 할 수 없습니다.
Lazaros Kosmidis

1

몇 년 동안 Eclipse를 사용해 왔지만이 "답변"은 추측 일뿐입니다 (오늘 밤에 시도 할 것입니다). 그것이 존재하지 않기 때문에 분명히 나는 ​​틀렸다.

Oracle은 CMake를 사용하여 MySQL Connector C 소스 코드에 대한 Visual Studio "솔루션"을 생성합니다. 솔루션 내에는 개별적으로 또는 집합 적으로 (솔루션에 의해) 컴파일 될 수있는 "프로젝트"가 있습니다. 각 프로젝트에는 자체 makefile이 있으며 솔루션의 일부를 다른 프로젝트와 다른 설정으로 컴파일합니다.

마찬가지로 Eclipse Workspace가 관련 makefile 프로젝트 (Eclipse)를 보유 할 수 있기를 기대합니다. 마스터 프로젝트는 종속성이 다양한 고유 makefile 프로젝트를 "솔루션"을 빌드하기위한 사전 요구 사항으로 컴파일합니다. 내 폴더 구조는 @Rafael이 설명하는 것과 같습니다.

따라서 Workspaces를 사용하는 좋은 방법은 다른 프로젝트를 솔루션으로 결합하는 Visual Studio의 기능을 모방 하는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.