Eclipse 프로젝트에서 일부 폴더를 제외하려면 어떻게해야합니까?


86

기존 코드베이스에 이클립스 프로젝트를 추가하고 있는데, 이클립스가 일부 디렉토리를 선택하지 않도록 제외하는 방법이 있는지 알고 싶습니다. 그 이유는 우리가 효율적으로 동기화하기 위해 사용 하는 쌍 프로그래밍 플러그인 에 대한 프로젝트에 존재할 수없는 거대한 "타사"디렉토리가 저장소에 있기 때문 입니다.

단서가 있습니까?


1
관련이 있으므로 여기를 참조하십시오. webtrafficexchange.com/… 폴더를 마우스 오른쪽 버튼으로 클릭하고 속성을 클릭 한 다음 "파생 됨"상자를 선택하면 실제로 파일을 소스 파일로 유지 한 다음 파일 검색에서 제외 할 수 있습니다!
Andrew

답변:


15

필터는보기에서 리소스를 숨기지 만 여전히 프로젝트에 있습니다. 다른 위치에서 프로젝트를 만드는 경우 프로젝트에 포함 할 폴더에 연결된 리소스 를 만들 수 있습니다 .

참고로 링크 된 리소스를 더 자세히 사용하는 방법을 설명하는 또 다른 답변을 게시했습니다 .


Rich : 이것이 제 초기 접근 방식 이었지만 문제는 프로젝트와 관련된 리소스를 만들 수 없다는 것입니다. 전체 경로가 하드 코딩되었습니다. 프로젝트를 SCM에 커밋해야했기 때문에 이것은 문제였습니다. 그것을 해결하는 방법에 대한 아이디어가 있습니까?
jkp

나는 이것을 더 자세히 설명하는 다른 답변에 대한 링크를 추가했습니다. 당신은 프로젝트가 작업 공간에있는 경우, 당신은 WORKSPACE_ROOT 사용할 수, 경로에 변수를 사용할 수 있습니다
리치 판매자

환상적입니다. 나는 변수에 대해 알고 있었지만 더 일찍 작동하게 할 수 없었습니다. 이것으로 나는 잘 가야한다. 훌륭한 대답 : 내가 찾던 바로 그것.
jkp

196

이를 수행하는 직접적인 방법이 있습니다.

  1. 프로젝트 탐색기 트리에서 프로젝트 폴더를 마우스 오른쪽 버튼으로 클릭하고 "속성"으로 이동합니다.
  2. 리소스-> 리소스 필터.
  3. 원하는만큼 파일 / 폴더에 대한 제외 필터를 추가하십시오.

PS 프로젝트 트리가 자동으로 업데이트되지 않으면 프로젝트 탐색기 창에 입력 포커스를 둔 상태에서 F5 키를 눌러야 할 수 있습니다.


8
이것이 답이되어야합니다! 이것은 링크 된 폴더를 사용하는 C ++ 프로젝트에서도 작동합니다.
void.pointer

.project 파일에 기록 될 내용을 게시 해 주시겠습니까? 내 이클립스는이 파일에 변경 사항을 저장할 수 없으므로 수동으로 작성해야합니다.
친구

2
이 답변에 감사드립니다. 그러나 빌드에서 제외 할 수있는 방법이 있습니까?
Movsar Bekaev 2011

6

예, 프로젝트에 사용자 지정 필터를 배치 할 수 있습니다. 프로젝트 탐색기보기에서 패키지 탐색기 탭 옆의 패널 상단 근처에 흰색 아래쪽을 가리키는 화살표가 있어야합니다. 그것을 클릭하고 필터로 이동하십시오. 여기에서 이름 필터 패턴 옆의 확인란을 선택하여 감지하지 않으려는 특정 폴더 패턴을 지정할 수 있습니다. 이 경우 타사 라이브러리의 이름을 입력합니다.


1
Alberto : 포인터를 주셔서 감사합니다. 저는 이것에 대해 전혀 몰랐습니다. 문제는 전체 폴더를 전혀 제외하는 방법을 찾을 수 없다는 것입니다. 그리고 Rich가 지적했듯이 그들은 여전히 ​​프로젝트에있을 것이며, 이는 우리에게 문제가 될 것입니다 (플러그인이 그것들을 동기화하려고 할 것 같습니다).
jkp

이것이 언어 독립적 인 유일한 대답 인 것 같습니다. 다른 지침은 내 Python 기반 프로젝트에서 사용할 수 없습니다.
dbn

Eclipse는 참으로 폴더를 숨 깁니다하지만 여전히 빌드에 포함되어 있습니다
아미르 Uval

1

내가 항상 해왔 던 방식은 프로젝트를 동료로 명시 적으로 확인하는 것입니다. 예 :

~ / myworkspace / goodproject
~ / myworkspace / 3rdparty

그런 다음 "goodproject"만 이클립스로 가져옵니다. "3rdparty"가 goodproject의 하위 디렉토리이면 가짜로 만들 수 있습니다. 예를 들어 svn 프로젝트가 다음과 같이 보입니다.

계획/
       src /
          본관/
          제 3 당/

로컬에서 project / src /를 만든 다음 "main"디렉토리 만 체크 아웃하고 eclipse가 패키지 버전에 의존하도록 할 수 있습니다 (예 : 프로젝트가 java 인 경우 jar를 가리킴).


1

.project 파일 내에 직접 필터를 추가하려는 경우 다음과 같은 몇 가지 규칙이 있습니다.

    <type>6</type> <!-- exclude all, files -->
    <type>5</type> <!-- include only, files -->
    <type>13</type> <!-- include only, files and folders -->
    <type>26</type><!-- exclude all, folders, all children -->

    <arguments>1.0-name-matches-false-false-xyz</arguments> <!-- case sensitive=false, regular expression=false, something named=xyz -->
    <arguments>1.0-name-matches-true-false-EEE</arguments> <!-- case sensitive = true, regular expression = false, something named=EEE -->
    <arguments>1.0-name-matches-false-false-www</arguments> <!--case sensitive=false, regular expression = false, something named=www -->

하나의 .project 필터 섹션 예 :

    <filteredResources>
        <filter>
            <id>1567020347706</id>
            <name></name>
            <type>6</type> <!-- exclude all, files -->
            <matcher>
                <id>org.eclipse.ui.ide.multiFilter</id>
                <arguments>1.0-name-matches-false-false-abc</arguments>
            </matcher>
        </filter>
        <filter>
            <id>1567020347708</id>
            <name></name>
            <type>5</type> <!-- include only, files -->
            <matcher>
                <id>org.eclipse.ui.ide.multiFilter</id>
                <arguments>1.0-name-matches-false-false-xyz</arguments> <!-- case sensitive=false, regular expression=false -->
            </matcher>
        </filter>
        <filter>
            <id>1567020347711</id>
            <name></name>
            <type>13</type>
            <matcher>
                <id>org.eclipse.ui.ide.multiFilter</id>
                <arguments>1.0-name-matches-false-false-mno</arguments>
            </matcher>
        </filter>
        <filter>
            <id>1567020347713</id>
            <name></name>
            <type>26</type><!-- exclude all, folders, all children -->
            <matcher>
                <id>org.eclipse.ui.ide.multiFilter</id>
                <arguments>1.0-name-matches-true-false-EEE</arguments> <!-- case sensitive = true, regular expression = false -->
            </matcher>
        </filter>
        <filter>
            <id>1567020347716</id>
            <name></name>
            <type>26</type> <!-- exclude all, folders, all children -->
            <matcher>
                <id>org.eclipse.ui.ide.multiFilter</id>
                <arguments>1.0-name-matches-false-false-www</arguments> <!-- case sensitive = false, regular expression = false -->
            </matcher>
        </filter>
    </filteredResources>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.