기본 빌드 디스크립터

기본 빌드 디스크립터의 계층 구조를 통해 생성 프로세스의 유연성이 증가합니다.

다음 레벨에서 기본 빌드 디스크립터를 지정할 수 있습니다.
  • 워크벤치
  • 프로젝트
  • 소스 폴더
  • 패키지
  • EGL 소스 파일

빌드 디스크립터를 지정하는 방법에 대한 정보는 기본 빌드 디스크립터 설정을 참조하십시오.

기본 빌드 디스크립터의 계층 구조

생성 마법사를 사용하여 기본 빌드 디스크립터를 대체하지 않은 경우 모든 EGL 생성 조작에서는 생성 중인 파트에 대해 지정된 기본 빌드 디스크립터를 사용합니다. 생성 마법사를 사용하려면 EGL 소스 파일을 마우스 오른쪽 단추로 클릭하고 마법사를 사용한 생성을 클릭하십시오.

사용할 기본 빌드 디스크립터를 판별하기 위해 EGL은 생성 중인 파트의 소스 파일에서 검색을 시작하고 빌드 디스크립터의 첫 번째 인스턴스를 찾을 때까지 디렉토리 구조에서 위로 이동합니다.

프로젝트를 작성할 때 EGL은 projectName.eglbld 빌드 파일을 제공하고 이 파일에서 하나 이상의 빌드 디스크립터 파트를 정의합니다. 프로젝트의 각 유형마다 EGL은 이 파일의 특정 기본 빌드 디스크립터를 프로젝트 레벨에서 기본 빌드 디스크립터로 지정합니다.
  • Rich UI 프로젝트의 경우 EGL은 projectNameJavaScriptBuildOptions 빌드 디스크립터 파트를 지정합니다.
  • 일반 프로젝트의 경우 EGL이 지정하는 빌드 디스크립터 파트는 프로젝트를 작성할 때 선택하는 대상 런타임 플랫폼에 따라 다릅니다.
    • Java™의 경우 projectNameJavaBuildOptions
    • COBOL의 경우 projectNameCOBOLBuildOptions
  • 웹 또는 플러그인 프로젝트의 경우 EGL은 projectNameJavaBuildOptions 빌드 디스크립터 파트를 지정합니다.
참고: EGL이 처음에 이러한 기본값을 지정하지만 이를 삭제할 수 있습니다. 이를 삭제하고 하위 레벨에서 사용자 정의 기본 빌드 디스크립터를 지정하지 않는 경우 EGL은 워크벤치(환경 설정) 레벨에서 해석을 검색해야 합니다. 워크벤치 레벨에서 사용자 정의 기본 빌드 디스크립터를 지정하지 않은 경우 오류가 발생하고 생성에 실패합니다.

EGL이 기본 빌드 디스크립터를 해석하는 방법에 대한 자세한 정보는 이 주제의 "빌드 디스크립터, 대상 플랫폼 및 디버거"와 해당 예를 참조하십시오.

빌드 디스크립터, 대상 플랫폼 및 디버거

다른 상황에 대한 다른 기본 빌드 디스크립터를 지정할 수 있습니다. 두 가지 카테고리의 기본 빌드 디스크립터가 있습니다.
  • 디버그
  • 대상 플랫폼
디버그에 대해 개발 중인 애플리케이션의 유형에 기반하여 다른 기본 빌드 디스크립터를 지정하십시오.
  • EGL은 Java 또는 COBOL로 생성되는 파트에 대해 해석 디버거를 사용합니다. 이 디버거는 EGL 소스 코드를 해석하여 작동합니다.
  • EGL은 JavaScript로 생성되는 파트에 대해 JavaScript 디버거를 사용합니다. 이 디버거는 브라우저에서 생성된 코드를 실행하여 작동합니다.
EGL 코드를 생성할 수 있는 대상 플랫폼에 기반하여 다른 기본 빌드 디스크립터를 지정하십시오.
  • COBOL
  • Java
  • JavaScript

카테고리 내에서 모든 값은 제공된 레벨에서 지정된 경우에 해당 레벨에서 사용됩니다. 이 규칙은 EGL이 대상 플랫폼 카테고리에서 빌드 디스크립터를 찾고 레벨에서 일치를 발견한 경우 추가 빌드 디스크립터 파트에 대해 상위 레벨에서 계속 찾지 않음을 의미합니다.

예 1: 클라이언트 및 서버의 라이브러리 생성

라이브러리를 클라이언트와 서버에서 모두 실행할 수 있도록 Java 및 JavaScript에 대해 동일한 라이브러리를 생성할 수 있습니다. 다음은 Rich UI 프로젝트의 예입니다.
UIProject  <- JavaScript default build descriptor (system)
  EGLSource
    handlers
      MyHandler.egl
    libraries
      MyLibrary.egl
    UIProject.eglbld
  ...

이 프로젝트는 Rich UI에 맞게 사용자 정의되어 있으므로 프로젝트를 작성할 때 EGL이 JavaScript 대상 플랫폼의 프로젝트 레벨 기본 빌드 디스크립터를 지정했습니다. MyLibrary.egl에 대해 Java 및 JavaScript 생성을 모두 사용하려면 라이브러리에 대해 Java 및 JavaScript 기본 빌드 디스크립터를 모두 지정하십시오.

다음의 화면 캡처는 MyLibrary.egl 파일이 있는 libraries 폴더의 특성으로 지정된 빌드 디스크립터 파트를 표시합니다. 값이 지정된 경우 모든 값이 제공된 레벨에서 사용되는 규칙으로 인해 둘 다 지정해야 합니다.
Java 및
JavaScript에 대해 대상 시스템 빌드 디스크립터가 설정되었습니다.
다음은 프로젝트 컨텐츠의 업데이트된 목록입니다.
UIProject  <- JavaScript default build descriptor (system)
  EGLSource
    handlers
      MyHandler.egl
    libraries  <- Java and JavaScript default build descriptors (user)
      MyLibrary.egl
    UIProject.eglbld
  ...
EGL은 기본 빌드 디스크립터를 다음과 같이 해석합니다.
  • MyLibrary.egl 라이브러리의 경우 EGL은 소스 파일로 시작하고 패키지 레벨에 도달할 때까지 디렉토리 구조에서 위로 이동합니다. 해당 레벨에서 EGL은 Java 및 JavaScript의 사용자 정의 기본 빌드 디스크립터를 찾습니다. Java 및 JavaScript와 호환 가능한 소스 파일에서 이러한 EGL 유형만 사용한 경우 EGL은 두 버전의 라이브러리를 모두 생성합니다.
  • MyHandler.egl 파일의 경우 EGL은 소스 파일로 시작하고 프로젝트 레벨에 도달할 때까지 디렉토리 구조에서 위로 이동합니다. 이 레벨에서 EGL은 JavaScript의 시스템 기본 빌드 디스크립터를 찾고 .js 파일을 생성합니다. .js 파일은 배치 중 HTML 파일에 임베드됩니다.

예 2: 생성 실패

이 예는 너무 높은 레벨에서 기본 빌드 디스크립터 옵션을 지정하는 경우 발생하는 상태를 표시합니다. 이전 예와 동일한 상황을 가정할 때 프로젝트 레벨에서 Java의 기본 빌드 디스크립터를 배치할 수 있습니다.
           <- JavaScript default build descriptor (system)
UIProject  <- Java default build descriptor (user)
  EGLSource
    handlers
      MyHandler.egl
    libraries
      MyLibrary.egl
    UIProject.eglbld
  ...
EGL은 기본 빌드 디스크립터를 다음과 같이 해석합니다.
  • MyLibrary.egl의 경우 EGL은 소스 파일로 시작하고 Java(사용자 정의) 및 JavaScript(시스템)의 기본 빌드 디스크립터를 모두 찾는 프로젝트 레벨에 도달할 때까지 디렉토리 구조에서 위로 이동합니다. EGL은 이전과 같이 두 번의 라이브러리를 모두 생성합니다.
  • MyHandler.egl의 경우 EGL은 소스 파일로 시작하고 Java 및 JavaScript의 동일한 기본 빌드 디스크립터를 모두 찾는 프로젝트 레벨에 도달할 때까지 디렉토리 구조에서 위로 이동합니다. Rich UI를 Java로 생성할 수 없으므로 오류로 종료됩니다.

예 3: 동일한 프로젝트에서 UI 및 서비스 생성

패키지 레벨에서 사용자 정의 기본 빌드 디스크립터를 작성하여 Java 생성을 관리하십시오. 이 프로젝트에는 라이브러리보다는 전용 서비스가 포함됩니다.
UIProject  <- JavaScript default build descriptor (system)
  EGLSource
    handlers
      MyHandler.egl
    services  <- Java default build descriptors (user)
      MyService.egl
    UIProject.eglbld
  ...
EGL은 기본 빌드 디스크립터를 다음과 같이 해석합니다.
  • MyService.egl 서비스의 경우 EGL은 소스 파일로 시작하고 패키지 레벨에 도달할 때까지 디렉토리 구조에서 위로 이동합니다. 해당 레벨에서 EGL은 Java의 사용자 정의 기본 빌드 디스크립터를 찾고 Java 서비스를 생성합니다.
  • MyHandler.egl 파일의 경우 EGL은 소스 파일로 시작하고 프로젝트 레벨에 도달할 때까지 디렉토리 구조에서 위로 이동합니다. 이 레벨에서 EGL은 JavaScript의 시스템 기본 빌드 디스크립터를 찾고 .js 파일을 생성합니다.

예 4: 개별 프로젝트에서 UI 및 서비스 생성

Rich UI 핸들러와 서비스를 개별 프로젝트에 배치하여 기본 빌드 디스크립터의 사용자 정의를 완전히 방지할 수 있습니다. 다음 다이어그램에서 UIProject는 Rich UI 프로젝트이기도 하며 ServiceProject는 일반 프로젝트입니다.
ServiceProject  <- Java default build descriptor (system)
  EGLSource
    services
      MyService.egl
    ServiceProject.eglbld
  ...
UIProject  <- JavaScript default build descriptor (system)
  EGLSource
    handlers
      MyHandler.egl
    UIProject.eglbld
  ...
EGL은 기본 빌드 디스크립터를 다음과 같이 해석합니다.
  • MyService.egl 파일의 경우 EGL은 소스 파일로 시작하고 프로젝트 레벨에 도달할 때까지 디렉토리 구조에서 위로 이동합니다. 해당 레벨에서 EGL은 Java의 시스템 기본 빌드 디스크립터를 찾고 Java 서비스를 생성합니다.
  • MyHandler.egl 파일의 경우 EGL은 소스 파일로 시작하고 프로젝트 레벨에 도달할 때까지 디렉토리 구조에서 위로 이동합니다. 이 레벨에서 EGL은 JavaScript의 시스템 기본 빌드 디스크립터를 찾고 .js 파일을 생성합니다.

마스터 빌드 디스크립터 및 빌드 디스크립터 체인

시스템 관리자가 마스터 빌드 디스크립터를 사용하도록 요청할 수 있습니다. 이러한 종류의 빌드 디스크립터는 대체할 수 없으며 EGL의 설치에서 발생하는 모든 생성에 적용되는 정보를 지정합니다. 시스템 관리자는 파트가 포함된 EGL 빌드 파일과 함께 해당 파트를 이름으로 식별합니다. 마스터 빌드 디스크립터를 설정하는 방법에 대한 정보는 마스터 빌드 디스크립터 설정을 참조하십시오.

생성 특정 빌드 디스크립터에서 빌드 디스크립터 체인을 작성하면 체인의 첫 번째 디스크립터가 두 번째보다 먼저 처리되고 두 번째가 세 번째보다 먼저 처리됩니다. 지정된 빌드 디스크립터를 정의할 때 nextBuildDescriptor 빌드 디스크립터 옵션에 값을 지정하여 체인을 시작합니다(또는 계속합니다). 시스템 관리자는 동일한 기술을 사용하여 마스터 빌드 디스크립터를 작성할 수 있습니다. 정보 체인 작성의 의미는 이후에 설명합니다.

빌드 디스크립터에서 참조하는 빌드 파트는 참조하는 빌드 디스크립터에 표시해야 합니다. 예를 들어, 빌드 파트는 연계 옵션 파트 또는 자원 연관 파트이거나 다음 빌드 디스크립터일 수 있습니다.

옵션의 우선순위

지정된 빌드 디스크립터 옵션의 경우 생성 시 처음 처리되는 값이 계속 적용됩니다. 전체 우선순위는 다음과 같습니다.
  1. 마스터 빌드 디스크립터
  2. 마법사를 사용한 생성 메뉴 옵션을 사용하는 경우 생성 시에 지정되는 대체 값이 포함된 특정 빌드 디스크립터 옵션. 그러나 이러한 옵션은 마스터 빌드 디스크립터에서 설정된 값을 대체할 수 없습니다.
  3. 생성 특정 빌드 디스크립터와 그 뒤에 표시되는 이로부터 연장되는 체인
  4. 마스터 빌드 디스크립터에서 연장되는 체인
이 체계의 이점은 편리하다는 점입니다.
  • 시스템 관리자는 마스터 빌드 디스크립터를 설정하여 변경되지 않는 값을 지정할 수 있습니다.
  • 생성 특정 빌드 디스크립터를 사용하여 특정 생성에 해당하는 값을 지정할 수 있습니다.
  • 프로젝트 관리자는 하나 이상의 빌드 디스크립터를 사용자 정의하여 기본값 세트를 지정할 수 있습니다. 이러한 대부분의 경우 생성 특정 빌드 디스크립터는 프로젝트 관리자가 개발한 체인의 첫 번째 빌드 디스크립터를 지정합니다. 사용자의 조직이 비슷하게 생성되거나 준비되어야 하는 프로그램 세트를 개발할 때 기본 옵션이 유용할 수 있습니다.
  • 시스템 관리자는 마스터 빌드 디스크립터에서 연장되는 체인을 설정하여 일반 기본값 세트를 작성할 수 있습니다. 이 기능은 거의 사용되지 않습니다.
  • 대상 사용자 ID나 비밀번호와 같은 특정 빌드 디스크립터 옵션을 대체해야 하는 경우 다른 빌드 디스크립터 파트를 설정하지 않고 대체할 수 있습니다.

지정된 빌드 디스크립터가 두 번 이상 사용된 경우 해당 빌드 디스크립터의 첫 번째 액세스가 적용됩니다. 또한 특정 옵션의 첫 번째 지정만 적용됩니다.

예 5: 빌드 디스크립터 체인

마스터 빌드 디스크립터에 다음과 같은 가상 옵션/값 쌍이 포함되어 있다고 가정하십시오.

  OptionX                02
  OptionY                05

이 예에서 myGen이라는 생성 특정 빌드 디스크립터에는 다음의 옵션/값 쌍이 포함됩니다.

  OptionA                20
  OptionB                30
  OptionC                40
  OptionX                50

myGen에 식별된 바와 같이 다음 빌드 디스크립터는 myNext01이며 다음의 쌍이 포함되어 있습니다.

  OptionA                120
  OptionD                150
myNext01에 식별된 바와 같이 다음 빌드 디스크립터는 myNext02이며 다음의 쌍이 포함되어 있습니다.
  OptionB                220
  OptionD                260
  OptionE                270

마스터 빌드 디스크립터에 식별된 바와 같이 다음 빌드 디스크립터는 myNext99이며 다음의 쌍이 포함되어 있습니다.

OptionW                  myUserID
OptionZ                  99

EGL은 다음과 같은 순서의 옵션 값을 허용합니다.

  1. 마스터 빌드 디스크립터에 있는 옵션의 값:
      OptionX             02
      OptionY             05

    이러한 옵션은 다른 모든 옵션을 대체합니다.

  2. 생성 특정 빌드 디스크립터 myGen의 값:
      OptionA             20
      OptionB             30
      OptionC             40

    myGen에 있는 OptionX의 값이 무시되었습니다.

  3. myNext01 및 myNext02에 있는 다른 옵션의 값:
      OptionD             150
      OptionE             270

    myNext02에 있는 OptionB 및 OptionD의 값과 마찬가지로 myNext01에 있는 OptionA의 값이 무시되었습니다.

  4. myNext99에 있는 다른 옵션의 값:
     OptionW             myUserID
     OptionZ              99

  5. 또한 생성 마법사를 사용하는 경우 생성 출력을 배치하기 위해 준비할 시스템에 대해 대상 사용자 ID 및 비밀번호와 같은 특정 빌드 디스크립터 옵션을 대체하도록 선택할 수 있습니다. 예를 들어, myNext99의 OptionW가 destUserID 빌드 디스크립터 옵션이고 생성 마법사를 사용하는 경우 생성 시 OptionW의 값을 설정하거나 변경할 수 있습니다.