동적 클래스 경로는 PDE가 Eclipse 3.0에서 플러그인 프로젝트에 대한 빌드 경로를 계산하는 방법입니다.
질문: 클래스 경로 안정성이란 무엇입니까?
답: 클래스 경로 안정성은 개발자에 의해 작성된
자체 호스팅 선택사항에 대한 클래스 경로 변경의 측정 기준입니다. 이론적으로, 클래스 경로는
작업공간에서 소스 프로젝트의 보완에 관계없이 변경되지 말아야 합니다. 2진 프로젝트 자체 호스팅은
양호한 클래스 경로 안정성을 제공하는 데, 여기서 모든 클래스 경로는 프로젝트 참조만 포함합니다.
외부 플러그인 자체 호스팅은 덜 안정된 클래스 경로를 제공합니다.
외부 라이브러리의 로컬 설치 위치에 관해서는 여전히 안정적이지만,
저장소를 통해 공유하도록 하려면 소스 프로젝트로서 플러그인의 목록이
팀의 모든 구성원에 대해 상시적으로 남아 있어야 합니다.
2.0 이후부터, 파일 시스템의 플러그인 위치에 플러그인 버전이 추가되어 외부 플러그인 사용 시 클래스 경로 안정성이 더욱 감소되었습니다.
질문: 2진 프로젝트가 더 나은 클래스 경로 안정성을 제공한다면, 왜 이 프로젝트를 항상 사용하지
않는 것입니까?
답: 가져온 2진 프로젝트를 자체 호스팅하는 방법은 가져온 플러그인 수가 비교적 적은(몇십 개) 경우에
적절한 선택입니다. 수백 개의 플러그인이 있는 대형 제품의 경우, 대량 가져오기는 옵션이 되지 않습니다.
일반적으로 개발자는 몇 개의 소스 프로젝트와 수십 개의 직접 관련된 2진 프로젝트 및 외부 플러그인과 같은
것들로 자체 호스트합니다. 순전히 이론적인 관점에서 볼 때, 몇 개의 소스 프로젝트를 컴파일할 수
있도록 하기 위해 수십 개의 외부 플러그인을 가져오려고 시간과 자원을 낭비한다는 것은 생소하게 보여집니다.
질문: (2진 프로젝트/외부 플러그인) 자체 호스팅 방법이 더 좋다고 생각합니다. 팀이 함께
자체 호스팅을 수행할 경우 자체 호스팅을 사용하는 팀에 잘못된 점은 무엇입니까?
답: 정적 클래스 경로(2진 프로젝트 또는 외부 플러그인을 사용하는)는 절대적으로 자체 호스팅 방법을
선택하고 모두 강제로 이 방법을 사용하게 합니다.
질문: 동적 클래스 경로란 무엇입니까?
답: 동적 클래스 경로는 플러그인 종속성에 관련된 플로그인 프로젝트 클래스 경로의 일부가
JDT 클래스 경로 컨테이너 기술을 사용하여 동적으로 계산되는 PDE 기능입니다.
동적 클래스 경로 분석은 '적시'에 수행되며 작업공간의 조건과 함께 항상 최신으로 됩니다.
그 밖에, 클래스 경로 분석의 동적 네이처를 통해 PDE는 변경사항에 적응할 수 있으며 자체 호스팅 방법에
관계없이 항상 올바른 클래스 경로를 가질 수 있습니다.
질문: 동적 클래스 경로의 클래스 안정성은 무엇입니까?
답: 궁극적인 목표입니다. 필수 플러그인에 대한 모든 항목이 하나의 클래스 경로 컨테이너 항목으로
바뀌어지므로 클래스 경로는 항상 동일합니다.
질문: 동적 클래스 경로는 어떤 도움을 줍니까?
답: 동적 클래스 경로를 사용하면 자체 호스팅 스타일에 대해 미리 결정을 할 필요가 없습니다.
2진 프로젝트가 존재할 경우, 동적 클래스 경로는 프로젝트 참조로 분석됩니다. 그렇지 않으면 외부
플러그인 JAR로 분석됩니다. 2진 프로젝트가 추가되거나 제거될 때 동적 클래스 경로는 변경사항을 추적하여
이에 맞게 적응합니다. 클래스 경로를 다시 갱신할 필요가 전혀 없습니다. 이 밖에, CVS로부터 하나 이상의
프로젝트를 가져와 이를 컴파일하려는 다른 팀이 이를 위해 개인용 자체 호스팅 스타일을 사용하지 않아도 됩니다.
질문: PDE 코어가 동적 클래스 경로를 분석하므로 올바른 작업을 수행하려면 PDE에 종속된다는 것을
의미합니까?
답: 한 마디로 예입니다. 동적이므로 클래스 경로는 .classpath 파일에 하드코드화되지 않은
동적인 것에 대해 계산됩니다. 단, PDE는 런타임 조건에 가능한 가깝게 해주는
매우 복잡한 클래스 경로 계산 알고리즘을 가지고 있다는 점을 고려하십시오.
개발 시 JDT 컴파일러가 '보는' 것과 클래스 로더가 런타임 시 보는 것은 가능한 일치해야
합니다. PDE 코어는 클래스 경로를 대부분 사용자 자신보다 더 최신으로 보존할 수
있습니다. 클래스 경로를 컴파일하기 위해 수동으로 조정할 필요가 있는 경우,
설정에 잘못된 점이 있는 것 같으며 플러그인이 올바로 실행하지 않을 가능성이 큽니다(SWT 팀에
예외가 있음).
질문: 팀이 자체 호스팅에 대해 2진 프로젝트를 배타적으로 사용합니다. 동적 클래스 경로로
전환하여 잃어버리는 것이 있습니까?
답: 아니오. 동적 클래스 경로는 자체 호스팅 배열의 개인적 선택을 지시하지 않습니다.
단지 지정된 컨텍스트의 플러그인 종속성을 분석합니다.
외부 플러그인을 2진 프로젝트로서 계속 가져오는 경우, 동적 클래스 경로는 이전처럼 프로젝트 참조로
분석됩니다.
질문: 동적 클래스 경로를 활성화하려면 무엇을 수행해야 합니까?
답: 모든 2.1 플러그인의 클래스 경로를 한 번만
갱신하십시오. 클래스 경로가 이제 짧아졌으며 모든 종속 플러그인 참조가 하나의 컨테이너 항목으로
바뀌어진 것을 보게 됩니다. 작업을 계속 수행할 수 있습니다.
변경된 .classpath 파일을 포함하여 소스 프로젝트를 반드시 저장소에 체크인하십시오.
질문: Ant 타스크/servlets/JSP를 컴파일할 수 있도록 기타 클래스 경로 항목을 가지고 있습니다.
답: PDE는 build.properties 파일의 'jars.extra.classpath' 특성을 클래스 경로 계산의 일부로
고려합니다.
빌드에 대해 올바로 설정되었으면 PDE는 올바른 클래스 경로를 생성합니다.
질문: 동적으로 계산된 클래스 경로 항목은 어떻게 조작합니까?
답: 동적 클래스 경로 항목을 조작해야 하는 경우, 특성>Java 빌드 경로>라이브러리 탭에서
이를 수행할 수 있습니다. '플러그인 종속성' 노드를 펼치고 여기서 항목을
조작하십시오.
질문: 라이브러리에 대해 계산된 일부 항목이 소스 첨부를 가지고 있지 않습니다. 이를 수동으로 추가할 수 있습니까?
답: PDE는 대부분의 라이브러리에 대해 소스 첨부를 계산합니다. 소스 zip 파일이 이름 지정 규칙을
따르지 않기 때문에 자동 소스 첨부가 실패할 수 있는 일부 뜻밖의 경우가 있습니다. 빌드 경로 특성 대화 상자에서
이들 항목에 대해 수동으로 소스를 첨부할 수 있습니다.
질문: 수동으로 소스를 첨부하면 다음에 PDE가 클래스 경로를 동적으로 계산하지 못하게 합니까?
답: 아니오. PDE는 이러한 수동 소스 첨부 케이스를 계속 추적하여 라이브러리 경로가 변경되지 않는 한
동적 계산 후 이를 다시 적용합니다.
질문: SWT 개발자로서 동적 클래스 경로를 사용할 수 있습니까?
답: 아니오. SWT팀은 다양한 환경에 대한 클래스 경로가 저장소에 저장되고 작업 중인 플랫폼에
따라 프로젝트의 .classpath로 이름이 변경된 고유 자체 호스팅 설정을 가집니다.
자체 호스팅 방법을 계속 사용해야 합니다.