"자원이 파일 시스템과 동기화되지 않았습니다"피하기


267

Eclipse로 Java 코드를 개발하고 정기적으로 다음 메시지를받습니다.

리소스가 파일 시스템과 동기화되지 않았습니다.

마우스 오른쪽 버튼을 클릭하고> 새로 고침을 수행하면 항상 지워집니다.

그러나이 조건을 찾으면 왜 Eclipse가 자동으로 새로 고쳐질 수 없습니까? 리소스를 동기화하지 않으려는 경우가 있습니까?.

이러한 조건이 있고 내 작업에 적용되지 않는 경우이 상태가 발생하면 Eclipse가 자동으로 새로 고쳐지는 방법이 있습니까? (인간 개발자의 성능을 높이려면 정상적인 개발에서 필요한만큼 새로 고쳐야한다는 점에 감사합니다.)

업데이트 (2012-06-25) : 최신 업데이트 (버전 : Indigo 릴리스 빌드 ID : 20110615-0604)에 더 이상 환경 설정-일반-작업 영역-자동 새로 고침이 표시되지 않습니다. "액세스시 새로 고침"옵션이 있습니까?


메시지를 받습니까? 조심하지 않으면 직장을 잃을 수도 있습니다.
Thorbjørn Ravn Andersen

1
웹 도구의 서버 프로젝트에는 일식 외부에서 계속 업데이트되는 로그 파일이 포함되어 있기 때문에 작업 공간을 검색 할 때 항상 이 메시지가 표시 됩니다. 지금까지는 Refresh Automatic 이외의 솔루션을 찾지 못했지만 문제가 발생합니다 (특히 Ant 빌드가 실행될 때 Eclipse는 Ant 빌드의 절반을 새로 고치고 문제를 해결합니다).
Stijn de Witt

아마도 프로젝트를 바로 핥고 "새로 고침"을 선택하십시오.
Junchen Liu

바보 같은 질문 : 자원의 "추가 사본"이 의무적 인 이유는 무엇입니까? 모두 "동기화"될 수있는 기회와 함께 이것을 확실히하십시오.
nsandersen

답변:


322

창-환경 설정-일반-작업 공간-자동 새로 고침 ( 기본 빌드를 사용하여 새로 고침 또는 최신 빌드에서 폴링 이라고 함 )에서이를 사용할 수 있습니다.

Eclipse 환경 설정 "기본 후크 또는 폴링을 사용하여 새로 고침"-스크린 샷

이것이 기본적으로 활성화되어 있지 않은 이유는 성능과 관련이 있습니다.

예를 들어, 소스 폴더를 자동으로 새로 고치면 작업 영역 빌드가 트리거 될 수 있습니다. 아마도 어떤 사람들은 이것에 대해 더 많은 통제력을 원할 것입니다.

Eclipse 사이트에는 자동 새로 고침에 관한 기사 도 있습니다 .

기본적으로 작업 공간 외부에서 변경된 파일을 Eclipse에 알리는 외부 트리거가 없습니다. 오히려 백그라운드 스레드는 Eclipse에서 파일 변경 사항을 모니터하여 큰 작업 공간의 성능 문제를 일으킬 수있는 파일을 모니터하는 데 사용됩니다.


+1이 상황에서만 발생합니까? 아니면 다른 곳에서 나에게 영향을 줄 정도로 충분한가?
peter.murray.rust

1
환경 설정-일반-작업 공간-자동 새로 고침이 있습니다. 이것은 동일합니까?
peter.murray.rust

1
저장되지 않은 변경 사항이없는 열린 편집기 창에 대해 파일 시스템의 변경 사항을 자동으로 승인 할 수있는 방법이 있습니까?
Leopd


14
이제는 "기본 후크 또는 폴링을 사용하여 새로 고침"(Indigo SR1)이라고합니다.
Oliver Bock

37

파일이나 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 새로 고침을 클릭하십시오. 오류가 사라집니다. 나는 또한 같은 문제에 직면했고 그것은 나를 위해 일했다.


20
OP는 그의 질문에서 " '새로 고침'이 항상 이것을 지울 것이라고 언급했다." 문제는 복잡한 프로젝트로 작업하거나 파일 시스템을 변경하는 Eclipse 외부 도구와 함께 사용할 때 매우 성가신 것입니다.
ryanbrainard


12

새로운 Indigo 버전의 경우 기본 설정이 "액세스시 새로 고침"으로 변경되고 자세한 설명이 있습니다. 작업 영역을 통해 액세스 할 때 외부 작업 영역 변경 사항을 자동으로 새로 고칩니다.

“리소스가 파일 시스템과 동기화되어 있지 않기 때문에”이 문제는 외부 작업 공간을 사용할 때 발생하므로이 옵션을 선택한 후 문제가 해결되었습니다.


1
이것은 메시지를 제거했습니다. 감사합니다
lsaffie

5

이것은 항상 나에게 일어난다.

오류 로그로 이동하여 예외를 찾은 후 근본 원인과 같은 것이 보일 때까지 몇 가지 레벨을여십시오. "자원이 파일 시스템과 동기화되지 않았습니다"라고 표시됩니까?

물론 패키지 이름을 바꿀 때 Eclipse는 파일 시스템에서 파일을 이동해야합니다. 분명히 발생하는 것은 나중에 정리해야한다고 생각되는 이름이 바뀌고 찾을 수 없으며 예외를 던진다는 것을 알게됩니다.

시도해 볼 몇 가지가 있습니다. 먼저 창 : 환경 설정, 작업 영역으로 이동하여 "자동 새로 고침"을 활성화하십시오. 이론적으로 이것은 문제를 해결해야하지만 나에게는 그렇지 않습니다.

둘째, 서브 패키지를 사용하여 큰 리팩토링을 수행하는 경우 서브 패키지를 한 번에 하나씩 아래에서 위로 수행하고 각 서브 패키지의 이름을 바꾼 후 파일 시스템으로 명시 적으로 새로 고칩니다.

셋째, 오류를 무시하십시오. 오류 대화 상자가 나타나면 중단을 클릭하여 부분 변경을 롤백하는 대신 보존하십시오. 다시 시도하면 여러 번의 재 시도를 통해 전체 작업을 수행 할 수 있습니다.


수입 후 일부 수입품이 손상되었지만 빠른 수입 수입품 도 그 문제를 해결했습니다.
z0r

클래스를 새 패키지로 옮길 때이 작업을 수행해야합니다 (오류를 무시하고 다시 시도하십시오).
z0r

1

폴더를 삭제하려고 할 때 (* nix에서) Refresh가 도움이되지 않으면, 터미널을 열고 삭제하려는 폴더 아래의 심볼릭 링크를 찾아 수동으로 제거하십시오. 이것은 내 문제를 해결했습니다.


1

Clearcase보기 내에서 Eclipse 작업 공간을 열고 프로젝트 이름을 바꾸려고하면 종종 "자원 '프로젝트'가 파일 시스템과 동기화되지 않았습니다"라는 팝업 경고가 표시됩니다. 프로젝트를 새로 고쳐도 문제가 해결되지 않으면 다음 해결 방법을 수행하십시오. 뷰에없는 작업 공간 열기 b. 프로젝트 탐색기에서 프로젝트를 선택하십시오. c. ClearCase-> 프로젝트 연결 (프로젝트는 이제 프로젝트 [])과 같아야합니다. d. 프로젝트-> 새로 고침을 마우스 오른쪽 단추로 클릭하십시오. 이제 vob 하위 폴더가 비어 있어야합니다. e. 프로젝트-> 이름 바꾸기 ...를 마우스 오른쪽 버튼으로 클릭하십시오. f. 새 이름을 입력하십시오

이제 작업 공간을 닫고보기에서 다시 열어 프로젝트를 새로 고칠 수 있습니다. 프로젝트가 vob와 연관되지 않도록하려면 프로젝트를 분리 할 수도 있습니다.


클리어 케이스가 내 개를 훔쳤다.
Dominic Cerisano

1

약간의 힌트. 이 메시지는 종종 이름 바꾸기 작업 중에 나타납니다. Ctrl-Y메시지 확인 후 빠른 해결 방법은 (바로 가기 다시 실행)을 누르는 것입니다 . 이름 변경이 단일 파일에 영향을 미치는 경우에만 작동합니다.


무엇을 Ctrl-Y합니까?
z0r

1
Ctrl-Y는 "다시 실행"입니다. 이 특별한 경우 이름을 바꾸면 이클립스에 문제가 발생하고 이름 바꾸기 작업을 취소합니다. Ctrl-Y를 누르면 이름 바꾸기 시도가 복구됩니다.
wathson

아 알 겠어요 우분투에는 없다. 그것은이다 Ctrl-Shift-Z. Ctrl-Y답 을 누르는 이유에 대한 설명을 추가해보십시오 :)
z0r

1

일반 Eclipse 사용자 인 경우이 오류가 여러 번 발생했을 수 있습니다. 오류는 단순히“일식 외부에서 작업 공간의 파일을 변경했습니다”라고 말합니다. 가장 간단한 해결책은 프로젝트를 선택하고 F5를 누르는 것입니다 (오른쪽 클릭-> 새로 고침).

더 자세한 설명이 필요하면이 웹 사이트 에서 읽을 수 있습니다


0

새로 고침하거나 "네이티브 폴링"작업 영역 기능을 설정하여이 오류를 해결할 수 없습니다. 내 프로젝트도 두 개의 식 인스턴스에서 열렸습니다. 다른 인스턴스를 닫으면 오류가 사라졌습니다. 따라서이 오류가 표시되면 프로젝트가 한 곳에서만 열려 있는지 확인하십시오.

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