이 페이지의 내용
패키지 JET 애플리케이션
응용 프로그램 개발이 완료되면 콘텐츠를 설명하는 JSON(JavaScript Object Notation) 파일을 작성하여 장치에 배포하기 전에 응용 프로그램을 빌드하고 패키지합니다. JSON은 경량 데이터 교환 형식입니다. 인간이 읽고 쓰기가 쉽고 기계가 구문 분석하고 생성하기 쉽습니다. 자세한 내용은 https://www.json.org 을 참조하십시오.
JSON 파일은 중괄호 집합 안에 포함된 속성 모음으로 구성됩니다. 특성은 두 가지 구조를 사용합니다.
키-값 쌍의 컬렉션입니다.
정렬된 값 목록입니다.
애플리케이션 패키징을 위한 JSON 형식에 포함된 각 속성에 대해 자세히 알아보세요.
Main Section 속성
JSON 파일의 맨 위 블록은 파일의 기본 섹션입니다. 필수 및 선택적 특성으로 구성됩니다.
필수 속성
표 1 에서는 애플리케이션 패키징을 위한 모든 JSON 파일이 기본 섹션에 포함해야 하는 필수 속성을 설명합니다. 다음은 필수 속성만 포함하는 간단한 애플리케이션 JSON 파일의 예입니다.
{ "app-name": "testcapp", "app-path": "bin/test-c-app", "language": "c", "app-type": "standalone", "sign": "yes", "os-type": "bsd10", "target-arch": "i386", "description": "C Test Application", "srcs": { "bin/test-c-app": ["test_app.c"] } }
특성 |
설명 |
예제 값 |
---|---|---|
|
응용 프로그램의 이름을 지정합니다. |
|
|
응용 프로그램의 구현 디렉터리에 대한 경로를 지정합니다. 모든 경로는 sandbox src에 상대적이어야 합니다. |
|
|
응용 프로그램 개발에 사용되는 언어를 지정합니다. |
|
|
이것은 목록 속성입니다. 디바이스에서 실행되는 기본 스크립트의 파일 이름을 지정합니다(여기서는 모듈을 지정하지 마십시오). 기본 스크립트 파일은 디바이스의 /var/db/ scripts/jet 경로 아래에 배포됩니다. |
|
|
응용 프로그램이 독립 실행형 프로그램인지 아니면 데몬인지를 지정합니다. |
|
|
응용 프로그램에 서명할지 여부를 나타냅니다. |
|
|
애플리케이션을 레거시 Junos OS(bsd6)에 구축할지, 아니면 업그레이드된 FreeBSD를 사용하는 Junos OS(bsd10)에 구축할지를 지정합니다. |
|
|
응용 프로그램을 배포할 대상 아키텍처를 지정합니다. |
|
|
응용 프로그램에 대한 간략한 설명(한 줄)을 작성하십시오. 이는 운영 명령 출력에 |
|
선택적 특성
표 2 에는 애플리케이션 패키징을 위해 JSON 파일의 기본 섹션에 포함할 수 있는 선택적 속성이 설명되어 있습니다. 다음은 필수 및 선택적 특성이 있는 예제 기본 섹션입니다.
{ "app-name": "sample_pyapp", "app-path": "python/sample_pyapp", "language": "python", "main-scripts": ["foo.py", "bar.py"], "app-type": "standalone", "sign": "no", "os-type": "bsd6", "target-arch": "i386", "description": "Simple Python test app", "c-compiler-flags": "-DFOO -DBAR", "c++-compiler-flags": "-DAPP_CHECK –DSOMETHING_ON", "linker-flags": "-lstdc++ -lfoo" }
특성 |
설명 |
예제 값 |
---|---|---|
|
C 컴파일러 플래그 목록(있는 경우)을 지정합니다. 컴파일 플래그는 메인 섹션, 종속 라이브러리(dep-libs) 또는 종속 Python 모듈(dep-py-modules)에 대해 정의할 수 있습니다. |
|
|
C++ 컴파일러 플래그 목록(있는 경우)을 지정합니다. 컴파일 플래그는 메인 섹션, 종속 라이브러리(dep-libs) 또는 종속 Python 모듈(dep-py-modules)에 대해 정의할 수 있습니다. |
|
|
링커 플래그 목록(있는 경우)을 지정합니다. 이러한 플래그를 사용하여 링크할 추가 라이브러리 또는 링크 중에 필요한 추가 링크별 플래그를 지정합니다. 링커 관련 플래그는 기본 섹션 또는 dep-py-modules 섹션에서 정의할 수 있습니다. |
|
소스 속성
표 3 에서는 애플리케이션 패키지의 소스 파일을 지정하는 데 사용할 수 있는 두 가지 소스 속성을 보여줍니다. 다음은 기본 스크립트 파일과 함께 배포할 추가 모듈 파일이 있는 Python 응용 프로그램의 예입니다.
{ "app-name": "sample_pyapp", "app-path": "python/sample_pyapp", "language": "python", "main-scripts": ["foo.py", "bar.py"], "app-type": "standalone", "sign": "no", "os-type": "bsd6", "target-arch": "i386", "description": "Simple Python test app", "srcs": { "python/sample_pyapp": ["a.py", "b.py"], "python/sample_pyapp/temp": ["temp1.py", "temp2.py"] }, "extn-srcs": { "python/sample_pyapp": ["foo.c", "bar.c"], "python/sample_pyapp/temp": ["1.cpp", "2.cpp"] } }
특성 |
설명 |
예제 값 |
---|---|---|
|
추가 소스 파일 목록을 지정합니다. Python 애플리케이션의 경우 이러한 소스 파일은 추가 모듈 파일입니다. C 또는 C++ 응용 프로그램의 경우 이러한 소스 파일은 lib/binary를 생성하기 위해 컴파일할 소스 파일입니다. 각 항목은 키-값 쌍이어야 하며, 여기서 키는 소스 파일의 경로이고 값은 소스 파일 이름의 배열입니다. |
"srcs": { "python/sample_pyapp": ["a.py", "b.py"], "python/sample_pyapp/temp": ["temp1.py", "temp2.py"] } |
|
이 섹션은 Python에만 적용됩니다. 컴파일할 C 또는 C++ 모듈 파일 목록을 지정합니다. 각 항목은 키-값 쌍이어야 하며, 여기서 키는 소스 파일의 경로이고 값은 소스 파일 이름의 배열입니다. |
"extn-srcs": { "python/sample_pyapp": ["foo.c", "bar.c"], "python/sample_pyapp/temp": ["1.cpp", "2.cpp"] } |
종속 라이브러리
종속 라이브러리(dep-libs
) 섹션에서 사용할 수 있는 모든 종속 라이브러리를 컴파일해야 합니다. 이 JSON 코드에서 생성된 라이브러리는 애플리케이션과 함께 패키지됩니다. 이 dep-libs
섹션은 각각 다음과 같은 키-이름 쌍으로 구성된 여러 라이브러리 종속성의 배열입니다.
"lib-name"
은 라이브러리의 이름입니다."lib-path"
는 개발 샌드박스에 있는 라이브러리 소스 코드의 경로입니다."srcs"
는 경로가 키이고 값이 소스 파일 목록인 키-값 쌍입니다.
다음은 특성의 dep-libs
예입니다.
"dep-libs": [ { "lib-name": "xyz", "lib-path": "lib/xyz", "srcs": { "lib/xyz": ["foo.c", "bar.c"] } } ]
종속 파이썬 모듈
종속 Python 모듈(dep-py-modules
) 속성은 Python 응용 프로그램에만 사용됩니다. 이 특성에는 애플리케이션과 함께 컴파일 및 패키지해야 하는 모든 종속 Python 모듈이 포함되어 있습니다. 이 특성은 여러 Python 모듈 종속성을 dep-py-modules
지정할 수 있는 배열입니다. 각 종속성은 다음 개체로 구성됩니다.
"py-module-name"
은 Python 모듈의 이름입니다."py-module-path"
는 개발 샌드박스에 있는 Python 모듈 소스 코드의 경로입니다."srcs"
는 경로가 키이고 값이 소스 파일 목록인 키-값 쌍입니다."extn-srcs"
는 경로가 키이고 해당 값이 Python 확장 소스 파일 목록인 키-값 쌍입니다.
다음은 특성의 dep-py-modules
예입니다.
"dep-py-modules": [ { "py-module-name": "module_a", "py-module-path": "python/module_a", "srcs": { "python/module_a": ["foo.py", "bar.py"] }, "extn-srcs": { "python/module_a": ["foo.c", "bar.c"], "python/module_a/sub_mod": ["lmn.cpp"] } } ]