빌드 구성
빌드 메커니즘은 빌드 구성에 의해 처리됩니다. 개별 플러그인, 단편 또는 기능에 대한 빌드 구성은
해당 요소의 build.properties 파일에 있습니다.
PDE 프로젝트 작성 마법사는 플러그인 프로젝트가 작성될 때
build.properties 파일을 생성합니다. 파일에는 소스 폴더를 JAR에 컴파일하는 방법에
관한 정보가 있습니다. 이 정보는 Manifest 편집기의 런타임 페이지에서 간접적으로 갱신될 수 있습니다. 이것은 적절한 편집기를 사용하여 직접 수정될 수도 있습니다.
PDE는 양식과 소스 보기가 있는 build.properties에
일반 편집기를 제공합니다.
파일 자체는 Java 특성 형식 다음에 옵니다. 다수의 키와 그에
해당되는 값을 제공해야 합니다. 다중 값은 쉼표를
분리문자로 사용하여 구분합니다.
공통 특성
- bin.includes - 빌드하는 플러그인의 2진 버전에 포함할 파일을 나열합니다.
- bin.excludes - 2진 빌드에서 제외할 파일을 나열합니다.
- qualifier - 요소 버전 번호가 .qualifier로 끝날 때 이는 ".qualifier"가 어떤 값으로
바뀌어져야 하는지를 표시합니다. 이 특성의 값은 context, <value> 또는 none이 될 수 있습니다.
Context는 시스템 날짜에 따라 날짜를 생성하거나 빌드가 자동화된 경우 CVS 태그를 사용합니다.
Value는 실제 값입니다. None은 ".qualifier"를 제거합니다. 특성을 생략하면 컨텍스트가 사용됩니다.
- custom=true - 빌드 스크립트가 자동으로 생성된 스크립트와 반대로 수동으로 생성되었음을 표시합니다. 따라서 다른 값은 고려되지 않습니다.
플러그인 특정 특성
- source.<library> - 컴파일할 소스 폴더를 나열합니다(예: source.xyz.jar=src/, src-ant/).
라이브러리가 plugin.xml 또는 manifest.mf에 지정되어 있는 경우, 값은 이와 일치해야 합니다.
- output.<library> - 컴파일 결과를 수신하는 출력 폴더를 나열합니다.
- source.<library> - 컴파일러가 라이브러리에서 복사할 수 없는 파일을 나열합니다.
- extra.<library> - 자동화된 빌드를 수행하는 데 사용되는 추가 클래스 경로. 클래스 경로는 사용자 개발 환경의 플러그인 및 단편을 가리키는 플랫폼 URL
또는 상대 경로가 될 수 있습니다(예: ../someplugin/xyz.jar,platform:/plugins/org.apache.ant/ant.jar). 상대 경로보다 플랫폼 url이 권장됩니다.
- manifest.<library> - 라이브러리에 대한 Manifest로 사용될 파일을 표시합니다. 이 파일은 jar의 입력으로 사용되는 소스 폴더 중 하나에 위치해야 합니다.
- src.includes - 소스 빌드에 포함할 파일을 나열합니다.
-
src.excludes - 소스 빌드에서 제외할 파일을 나열합니다.
- jars.extra.classpath - (사용되지 않음) 항목이 모든 라이브러리에 적용되는 것을 제외하고는 extra.<library>와 같은 효과
- jars.compile.order - JAR가 컴파일되어야 하는 순서를 정의합니다(여러 라이브러리가 있는 경우).
"includes" 또는 "excludes"로 끝나는 이들 키에 대해 정의된 값은 Ant "패턴"으로 표시됩니다.
표준 형식은 예상 결과를 제공합니다. 예를 들어, "*.jar"은 맨 위
레벨 디렉토리의 모든 Jar 파일을 표시합니다. 기본적으로 패턴은 복잡하지 않습니다. 예를 들어,
모든 Java 파일을 설명할 경우 "**/*.java" 패턴을 사용해야 합니다.
"**" 패턴은 모든 수의 디렉토리 레벨과 일치합니다. 마찬가지로 전체 서브트리를 설명하려면 "xyz"를 사용하십시오.
기능 특정 특성
- root - 제품의 루트에 포함되어야 하는 파일 및 폴더를 나열합니다. 지원되는 다양한 값은 다음과 같습니다.
- <folderName> - 복사될 폴더에 대한 상대 경로
- file:<fileName> - 복사될 파일에 대한 상대 경로
- absolute:<folderName> - 복사될 폴더에 대한 절대 경로
- absolute:file:<fileName> - 복사될 파일에 대한 절대 경로
- root.<config> - 지정된 구성에 대해 빌드될 때 제품의 루트에 포함되어야 하는 파일 및 폴더를
나열합니다. config는 점으로 구분된 구성의 세 가지 세그먼트로 구성됩니다.
- root.permissions.<permissionValue> - 주어진 값으로 chmod할 파일 및 폴더를 나열합니다. 폴더 참조는 '/'로 끝나야 합니다.
- root.permissions.<config>.<permissionValue> - 특정 구성에 대해 주어진 값으로 chmod할 파일 및 폴더를 나열합니다. 폴더 참조는 '/'로 끝나야 합니다.
- root.link - 기호로 링크되어야 하는 파일 및 폴더를 쌍(쉼표로 구분된)으로 나열합니다. 첫 번째 항목은 소스(UNIX 용어로 대상)를 표시하고 두 번째 항목은 링크 이름을 표시합니다.
- root.link.<config> - 특정 구성에 대해 기호로 링크되어야 하는 파일 및 폴더 쌍의 쉼표로 구분된 목록. 첫 번째 항목은 소스(UNIX 용어로 대상)를 표시하고 두 번째 항목은 링크 이름을 표시합니다.
- generate.feature@<featureId> - 소스 기능 featureId가 이 특성의 값으로 표시된 기능의 소스 기능이 됨을 나타냅니다. 첫 번째 쉼표 다음에 나열된 값은 저장소에서 페치될 요소를 나타냅니다.
- generate.plugin@<pluginId> - 소스 플러그인 pluginId가 이 특성의 값으로 표시된 플러그인의 소스 플러그인이 됨을 표시합니다.
다음은 org.eclipse.platform 기능의 build.properties로부터 추출된 예제입니다.
bin.includes=epl-v10.html,eclipse_update_120.jpg,feature.xml,feature.properties,license.html
root=rootfiles,file:../../plugins/org.eclipse.platform/startup.jar,configuration/
root.permissions.755=eclipse
root.linux.motif.x86=../../plugins/platform-launcher/bin/linux/motif,linux.motif
root.linux.motif.x86.link=libXm.so.2.1,libXm.so.2,libXm.so.2.1,libXm.so
root.linux.motif.x86.permissions.755=*.so*