Eclipse : 각 프로젝트에 대한 작업 공간을 만들어야합니까?


80

모든 Eclipse 프로젝트를 하나의 작업 공간에 넣는 것이 가장 좋은지 아니면 프로젝트 당 하나의 작업 공간을 수행하는 것이 가장 좋은지 궁금합니다. 나는 취미로하는 솔로 개발자 일 뿐이지 만 내가 만든 앱은 실제로는 꽤 자주 크론 작업에서 실행되는 프로덕션 버전이 있으므로 아마추어 프로덕션 환경과 거의 같습니다.

내가 지금까지 알아 차린 유일한 문제는 JAR을 내보내는 것입니다. 다른 프로젝트의 소스 파일을 포함 할 가능성이 있습니다.


각 소스 코드 분기에 작업 공간을 사용하는 것이 잘 작동한다는 것을 알았습니다. 특정 분기에 여러 위치가 있어야하는 경우 별도의 작업 공간에도 두는 것이 유용 할 수 있습니다.
Thorbjørn Ravn Andersen 2013 년

답변:


29

나는 별도의 작업 공간을 유지하곤했지만 설정을 일관되게 유지하는 데 어려움을 겪었습니다. 이제 내가 할 일은 다른 프로젝트에 대한 작업 세트를 만들고 현재 창 작업 세트를 변경하여 작업하려는 항목을 제외한 모든 것을 필터링하는 것입니다. 지금까지 이것은 나를 위해 잘 작동했습니다.

각 프로젝트는 여러 작업 세트를 가질 수 있고 창 작업 세트는 작업 세트의 조합이 될 수 있기 때문에이 방법으로 주어진 시간에 원하는 것만 보는 것은 매우 쉽습니다.


이것이 저라면 정답으로 선택했을 것입니다. 창 작업 세트를 사용하여 아무것도 나누지 않고 여기저기서 작업 공간을 만들지 않고도 항목을 필터링하는 것이 매우 쉽습니다. 이를 통해 관련 프로젝트 만보고 필요한 항목에만 집중할 수 있습니다.
steelmonkey 2015-09-01

28

제품에 대해 Eclipse 작업 공간을 만듭니다. 예를 들어, 프로젝트에서 핵심 라이브러리를 하나의 jar로 컴파일하는 것과 같이 제품에 여러 프로젝트가있을 수 있기 때문에 다른 프로젝트에서 사용합니다.

프로덕션 환경의 경우 제품이 다른 디렉토리 구조에서 실행되기를 원할 것입니다. 그리고 이클립스에서 작업 공간은 작업 공간 이름으로 디렉토리를 만듭니다. 따라서 하나 이상의 프로젝트가 아닌 제품 / 앱을 기반으로 작업 영역을 만듭니다.


1
전체 작업 공간을 소스 제어에 하나의 루트 초기 가져 오기 / 체크인으로 추가합니까?
Zombies

4
일반적으로 소스 제어에 작업 공간이나 Eclipse 프로젝트 파일을 추가하지 않고 프로젝트 코드와 자산 만 추가합니다. 여기서 목표는 소스 코드가 야간 빌드 시스템에서 컴파일되고 실행되는 한 개발자가 자신의 작업 공간을 적합하다고 생각하는대로 사용자 정의 할 수 있다는 것입니다.
omermuhammed 2010-04-12

1
Eclipse를 업그레이드하면 어떨까요? 새 작업 공간을 만들고 프로젝트를 가져 오나요? (아마 이것은 새로운 질문이 될 것입니다 ...) Indigo, Helio, Juno, 이제 Kepler에서 업그레이드 한 후 문제가 발생했기 때문에 각각에 대해 새 작업 공간을 만듭니다. 매우 불편합니다.
dfdumaresq

3
Eclipse를 업그레이드 할 때 먼저 작업 공간을 별도의 폴더에 백업하고 새 Eclipse로 기존 작업 공간을 열어보십시오 (Kepler는 최신 버전이라고 생각합니다). 잘 작동하면 정상적인 개발에 적합하고 그렇지 않으면 새 Eclipse 버전을위한 새 작업 공간을 만들 수 있습니다. 당신이 언급 한 문제들은 조심스럽게 디버그하고 그것들이 일식 문제와 하드 코딩 된 경로 등의 작업 공간 구성 문제인지 확인합니다.
omermuhammed a

6

프로젝트가 상호 연관되어있는 경우 (즉, 서로 종속성이있는 경우) 동일한 작업 공간에 두는 것이 합리적입니다. 또한 관련 문제를 해결하기 위해 여러 프로젝트에서 작업하는 경우에도 마찬가지입니다.

특히 IDE가 한 프로젝트의 변경 사항이 다른 프로젝트에 미치는 영향을 즉시 보여줄 때 불필요하게 작업 공간을 변경하는 데 많은 시간을 낭비하게됩니다.


6

각 프로젝트에 대해 별도의 작업 공간을 유지할뿐만 아니라 Eclipse의 별도 사본도 보관합니다. 이것은 일반적으로 프로젝트를 오랫동안 얼음 위에 놓고 (작은 통지없이) 프로젝트로 돌아와야하고 절대적으로 구축 해야 하기 때문입니다. 최신 프로젝트 (maven 기반)를 위해 설치 한 일부 플러그인이 레거시 시스템 (ant 기반) 중 하나의 빌드 프로세스를 방해 할 가능성이 없습니다. 기록을 위해 나는 그 레거시 시스템의 이클립스 환경을 문서화 하지만 프로덕션 버그를 패치 할 때 이클립스를 엉망으로 만들 시간이 없습니다.


3

다른 "그룹"프로젝트에 대해 별도의 작업 공간을 사용합니다. 예를 들어 기본 앱 프로젝트와 단위 테스트 프로젝트를 동일한 작업 공간에서 함께 결합 할 수 있습니다.


흥미 롭 네요. 저는 실제로 같은 프로젝트에 단위 테스트 소스 폴더를 넣었습니다.
Zombies

@Zombies : 예를 들어 동일한 작업 공간에 Android 프로젝트와 Android 테스트 프로젝트가 있습니다. 테스트 프로젝트에는 실제 앱에 대한 참조 만 있으면됩니다.
Bryan Denny

3

운이 좋지 않을 수도 있지만 Eclipse는 일반적으로 "Initializing Java Tooling"단계에서 시작시 종종 (한 달에 한 번) 죽습니다. 권장되는 해결책은 새 작업 공간을 만드는 것 같습니다. 당신이있는 경우 모두 하나의 작업 공간에서 프로젝트를,이 통증이있을 수 있습니다. 작업 공간이 작 으면 충돌이 발생할 가능성이 적다는 것을 의미 할 수 있습니다.


좋은 지적, 나는 이런 식으로 모든 것을 손상시킬 위험이 있습니다. 거의 살아 숨쉬는 코드 생태계와 같습니다.
Zombies

2
버전 제어를 사용하고 있지 않습니까?
meriton

일부는 괜찮을 수 있습니다. 호주의 광대역은 '개발 된'세계보다 10 년 뒤떨어져 있습니다 ...
John

6
특히 git 또는 mercurial과 같은 분산 시스템을 사용하는 경우 버전 제어를 위해 인터넷 액세스가 필요하지 않습니다.
Bad Sector

3

환경 설정은 작업 공간에 따라 다르기 때문에 작업 공간이 엄청나게 열려있는 경향이 있습니다. 작업 공간 (예 : 저장소 ...)간에 일부 설정을 동기화하기에는 너무 게으 릅니다.

다른 하나는 단일 작업 공간에서 너무 많은 프로젝트를 열면 Eclipse 속도가 느려질 수 있으므로 작업하지 않는 프로젝트를 닫아야합니다. Eclipse에서 동일한 작업 공간 (대부분의 경우 동일한 저장소)에 상주하는 많은 상대적 단기 프로젝트 (최대 한 달)를 관리하므로이 설정은 더 큰 유연성을 제공합니다.

상호 관련된 여러 프로젝트가있는 경우 동일한 작업 공간에 보관하십시오. 항상 함께 사용되지만 그룹이 독립적으로 사용되는 프로젝트 그룹을 식별 할 수있는 경우 이러한 프로젝트 세트를 다른 작업 공간에 배치하십시오. 이 경우 논리적 구조 여야합니다.


1
이것도 내 접근 방식입니다. 모든 Java 프로젝트에 대해 하나의 작업 공간 만 유지합니다. 그들 중 몇 개는 다른 프로젝트에 의존하기 때문에 편리하며 각각에 대한 작업 세트가 있습니다. 그러나 나는 적극적으로 일하지 않는 사람들을 닫는 경향이 있습니다. 일을 더 잘 관리 할 수 ​​있어야합니다.
elduff

3

우리는 몇 가지 프로젝트가 지점에있는 상황이 있습니다. 솔직히 같은 작업 공간에 보관하기에는 너무 비현실적이며 작업 세트는 농담입니다. 운수 나쁘게. 또한 사용하지 않는 프로젝트를 열어 놓으면 실수로 완료 메뉴 등에서 선택 될 수 있습니다. 오류가 발생하기 쉽습니다.

정말 멋진 기능은 Team-> Project Sets가 추가되었을 때였습니다 (Eclipse 3.3에서). 이로 인해 전체 애플리케이션을 구성하는 많은 프로젝트를 설명하는 단일 파일을 만들 수 있었기 때문에 Eclipse에서 Team과 함께 가져올 수 있습니다. -> 가져 오기. 주어진 프로젝트가 필요하십니까? CVS에서 확인하고 그 안에 projectSet.psf 파일을 찾은 다음 가져옵니다.

이것은 우리에게 잘 작동하는 것으로 입증되었습니다.


이후 여러 개의 서로 연결된 프로젝트를 훨씬 쉽게 관리 할 수있는 maven으로 마이그레이션했습니다.
Thorbjørn Ravn Andersen

3

프로젝트 유형 당 하나의 작업 공간이 있습니다. 예 : 일반 자바, 웹 애플리케이션, Python 등

그 이유는 유사한 라이브러리를 복사하거나 가리 키지 않고 공유 할 수 있기 때문입니다. 또한 혼란을 피하기 위해 이클립스에서 관련없는 프로젝트를 닫습니다.


2

모든 프로젝트가 단일 작업 공간에 있고 작업 세트를 사용하여 관리합니다.


1

당신까지! 나는 항상 주어진 작업 공간에서 동일한 릴리스에 속하는 서로 다른 프로젝트의 관련 버전을 유지하는 것이 더 깔끔한 접근 방식임을 발견했습니다. 이렇게하면 별도의 릴리스에서 무언가를 참조해야 할 때마다 작업 공간간에 전환하고 현재 릴리스 작업 공간으로 다시 전환 할 수 있습니다. 또한 체크 아웃이나 저장소 검색의 번거 로움을 덜어줍니다.


1

다른 작업 공간을보고있는 한 이클립스의 여러 인스턴스를 열 수 있음을 명심할 수도 있습니다. 그것이 당신에게 중요한지는 확실하지 않지만 때때로 그렇게하는 것을 좋아합니다.


OSX에서 open 명령 (파인더가 수행하는 방식)으로 열린 모든 앱 번들은 실행중인 인스턴스 하나만 허용합니다. 그러나 Eclipse.app/Contents/MacOS/eclipse 명령 줄에서 실행하면 여러 복사본을 실행할 수 있습니다
mmmmmm

1

여러 위치에서 프로젝트 를 가져 오는 여러 분리 된 작업 공간 (프로젝트 유형에 따라 다름)을 사용하고 싶습니다 . 유사한 작업 공간을 많이 만들지 않고도 물건을 쉽게 이동할 수 있습니다. 내 SCM 과도 잘 어울립니다.


1

작업하는 프로젝트의 수에 따라 다르나요? 여러 프로젝트에서 작업하는 경우 동일한 작업 공간을 사용합니다. 여러 프로젝트를 사용하면 어디에 있는지 쉽게 잊을 수 있으며 적어도 말하기에는 답답할 수 있기 때문입니다. 그러나 나는 항상 다른 프로그래밍 언어에 대해 다른 작업 공간을 사용하므로 덜 혼란 스럽습니다. JAVA 작업 공간에있을 때 JAVA : D

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