2012-04-02 4 views
4

두 개의 소스 폴더가있는 프로젝트를 설정했습니다. Folder1은 자동으로 생성 된 java 소스 파일 집합입니다.이 폴더는 만지기를 원하지 않습니다. Folder2는 이러한 파일 중 일부를 약간 수정 한 폴더입니다.Eclipse - 다른 소스 폴더에서 자동으로 생성 된 소스를 덮어 쓰기

내가 컴파일러에서 원하는 것은 Folder2에 편집 된 파일이있는 경우 Folder1에서 파일을 무시하는 것입니다.

이클립스에서 "Type X is already defined"오류를 끄는 방법을 찾았지만 설정의 오류/경고 아래에서 찾을 수 없습니다. 이 오류를 끄고 순서를 올바르게 설정하면 컴파일러가 올바른 파일을 사용하게됩니다.

필자가 원하지 않는 것은 분명히 Folder1의 모든 중복을 빌드 경로에서 직접 제외하는 것입니다. 나는 반드시 당신이 내 설치를 고치기를 원하지 않는다. 만약 이것을 설치하는 것이 더 좋은 방법이라면, 자유롭게 제안 할 수있다. 무슨 일이 일어나 든, 모든 소스는 내가 해결할 수없는 경로의 복잡성으로 인해 같은 bin 폴더에 있어야한다는 것을 기억하십시오. 가능하다면 스크립트 작성을 분명히하고 싶습니다.

+0

특정 파일을 선택하여 빌드에서 제외 할 수 있습니다. –

+0

그래, 그게 내가 "모든 파일을 손으로 제외하고 싶지 않다"라고 말한 것입니다. –

+0

Ah. 나는 그것을 놓쳤다. 내 나쁜 –

답변

1

두 개의 프로젝트를 만들 수 있습니다. prj1에는 Folder1 만 있고 에는 prj2에는 Folder2 만 있습니다. prj1은 prj2에 필수 프로젝트로 나열됩니다. 그렇게하면 Folder2의 소스가 Folder1의 소스보다 우선 적용됩니다.

1

나에게 이런 종류의 문제가 발생하면 SVN을 사용하여 조심스럽게 새 분기를 만들고 작업합니다.

이후에는 복잡한 pathes를 마이그레이션해야합니다.

Dave Newton이 말했듯이 부서진 프로젝트라고 생각하면이 방법으로 저장하는 것이 좋습니다. 당신의 요구 사항에 대한

+0

가장 큰 문제는 "Folder1"이 자동으로 생성되어 각 버전의 앱에 재생성된다는 점입니다. 나는 SVN 설정이 어떻게 작동하고 그것을 고려할지를 볼 수있다. 그러나 생성 된 소스가 각 릴리즈를 변경하면 기본적으로 모든 관련 파일을 모든 릴리즈에 대해 커밋해야 함을 의미하므로 깨진 버전 제어 시스템이되며, 이것은 부서진 프로젝트에서 시작하는 작은 단계입니다.좋은 대답 비록 –

+0

해당 프로젝트에 정확하게 될 확신은 없지만 각 재생성 된 Folder1 이후에 * 분기에서 * 병합 할 수 있습니다. HTH –

1

: 당신은 응용 프로그램이 파일을 업데이트 할 때

a RO mount that contains your original file set 
a RW mount that initially contains nothing 
an overlay/union mount for use by an application 

이있는 오버레이/노조 파일 시스템이 필요

...ignore files from Folder1 if there is an edited file in Folder2... 

, 파일 시스템은에 파일을 저장합니다 RW 위치. 동일한 이름의 파일이 RW 위치에 있으면 파일 시스템은 항상 RO 위치의 파일을 숨 깁니다.

개념이 이상하게 들릴 것입니다.

"overylay 파일 시스템이란 무엇입니까?"및 "노조 파일 시스템이란 무엇입니까?"

+0

물론 이클립스 내부에서 내가 여기서하려고하는 것입니다. 당신의 아이디어는 흥미 롭습니다 만, 코드 프로젝트에서 실제로 작동하지 않습니다. 버전 제어에서 사용할 수있는 것이 아니기 때문입니다. 당신이 설명하는 기능은 내가 이클립스에서 달성하고자하는 것이다. –

관련 문제