Java 빌드 경로 설정

이 절에서는 Java 빌드 경로 설정 방법에 대해 설명합니다. 이 빌드 경로는 Java 프로젝트를 빌드하기 위해 사용되는 클래스 경로입니다(IJavaProject).

간단하게, 클래스 경로는 사용 가능한 유형을 설명하는 클래스 경로 항목(IClassPathEntry)의 배열입니다. 유형은 소스 또는 2진 양식으로 표시될 수 있으며 경로에서의 항목 순서에 따라 빌드 중 유형을 분석하기 위한 찾아보기 순서가 정의됩니다.

Java 빌드 경로는 Java 프로젝트 요소 구조에 반영됩니다. 프로젝트에 패키지 단편 루트(IPackageFragmentRoot)를 조회할 수 있습니다.  각각의 클래스 경로 항목은 하나 이상의 패키지 단편 루트에 맵핑되며, 각 루트에는 패키지 단편 세트가 포함되어 있습니다.

빌드 경로에 대한 이 설명에서는 빌드 경로와 별도로 정의할 수 있는 Java 런타임 경로는 다루지 않습니다. (런타임 클래스 경로에 대한 설명은 Java 코드 실행을 참조하십시오.)

빌드 경로 변경

해당 프로젝트의 Java 요소에 setRawClasspath를 사용하여 프로젝트의 빌드 경로를 프로그래밍하여 변경할 수 있습니다.  다음 코드는 프로젝트 자원의 클래스 경로를 설정합니다.

	IProject project = ... // get some project resource
	IJavaProject javaProject = JavaCore.create(project);
	IClasspathEntry[] newClasspath = ...;
	javaProject.setRawClasspath(newClasspath, someProgressMonitor);
	

(참고:  "원래" 클래스 경로라는 용어는 분석되지 않은 항목 위치를 설명하기 위해 변수가 사용되었음을 강조하는 데 사용됩니다.)

Java 빌드 경로는 프로젝트의 파일 구조에서 '.classpath'라는 파일에 있습니다.  이 파일의 목적은 일부 소스 코드 저장소를 통해 다른 사용자와 Java 빌드 경로 설정을 공유하는 방법을 제공하는 것입니다. 특히 이 파일은 직접 편집하지 마십시오. 손상될 수 있습니다.

클래스 경로 항목

클래스 경로 항목은 JavaCore에 정의된 팩토리 메소드를 사용하여 정의할 수 있습니다.  클래스 경로 항목은 다음을 참조할 수 있습니다.

제외 페턴

클래스 경로 소스 항목에는 클래스 경로에서 소스 폴더의 특정 자원이 표시되지 않도록 제외 패턴이 지정될 수도 있습니다.  패턴을 사용하면 자원 트리의 지정된 부분이 필터되도록 할 수 있습니다.  각 제외 패턴 경로는 클래스 경로 항목에 상대적이며 Ant와 유사한 패턴 메커니즘을 사용합니다.  외부 패턴이 내부 패턴을 제외할 경우 중첩된 소스 폴더를 지정하는 데 제외 패턴을 사용할 수 있습니다.

제외 패턴에 대한 세부사항은 getExclusionPatterns()를 참조하십시오.

Java 프로젝트 API isOnClasspath는 특정 자원이 해당 클래스 경로에 있는지 여부를 판별하기 전에 포함 및 제외 패턴을 모두 확인합니다.

설명:

포함 패턴

클래스 경로 소스 항목에는 클래스 경로에 자원이 표시되도록 명시적으로 정의하는 포함 패턴이 지정될 수도 있습니다.  포함 패턴을 지정하지 않으면, 소스 항목은 이 소스 항목의 경로에 루트 지정된 자원 트리에 모든 관련 파일을 포함합니다. 하나 이상의 포함 패턴을 지정한다는 것은 자원 트리의 지정된 부분만 포함되는 것을 의미합니다. 지정된 각 경로는 상대 경로이어야 하며 이 소스 항목의 경로와 관련되어 해석됩니다. 파일 패턴은 대소문자를 구분합니다. 이들 패턴 중 하나 이상에 의해 일치되는 파일은 이 항목의 제외 패턴 중 하나 이상에 의해 제외된 경우를 제외하고는 해당 패키지 단편 루트에 포함됩니다.

경로 패턴의 구문 및 시맨틱에 대한 설명은 getExclusionPatterns()를 참조하십시오. 포함 패턴이 없다는 것은 의미상으로는 명시적 포함 패턴 **과 동등합니다.

Java 프로젝트 API isOnClasspath는 특정 자원이 해당 클래스 경로에 있는지 여부를 판별하기 전에 포함 및 제외 패턴을 모두 확인합니다.

예제:

클래스 경로 분석

클래스 경로 변수 및 컨테이너를 사용하여 동적으로 바인드된 클래스 경로 항목을 정의할 수 있으므로, 클래스 경로 API는 원래 클래스 경로와 분석된 클래스 경로를 구별합니다.   원시 클래스 경로는 원래 setRawClasspath를 사용하여 Java 프로젝트에 설정된 클래스 경로이며 프로젝트에 getRawClasspath를 요청하여 나중에 조회될 수 있습니다.  분석된 클래스 경로는 getResolvedClasspath를 사용하여 조회할 수 있습니다. 이 오퍼레이션은 클래스 경로를 분석하는 데 필요한 모든 변수 및 컨테이너의 초기화를 트리거합니다.  많은 Java 모델 조작은 암시적으로 Java 빌드 경로를 분석하도록 합니다.  예를 들어, 프로젝트 패키지 단편 루트를 계산할 경우 빌드 경로를 분석해야 합니다.