このページでは
パッケージJETアプリケーション
アプリケーション開発が完了したら、アプリケーションをデバイスに導入する前に、アプリケーションを構築してパッケージ化するコンテンツを記述した JavaScript Object Notation(JSON)ファイルを作成します。JSON は、軽量のデータ互換性形式です。人間が読み書きしやすいうえ、マシンの解析や生成も簡単です。詳細については、 を参照https://www.json.org。
JSON ファイルは、中括弧の中に属性の集めが含まれています。属性は 2 つの構造を使用します。
鍵と値のペアの集め。
値の順序指定されたリスト。
詳細については、アプリケーションのパッケージ化用に JSON 形式で含まれる各属性の詳細をご覧ください。
主なセクションの属性
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"]
}
}
属性 |
説明 |
例の値 |
|---|---|---|
|
アプリケーションの名前を指定します。 |
|
|
アプリケーションの実装ディレクトリへのパスを指定します。すべてのパスはサンドボックスのソースを基準として 行う必要があります。 |
|
|
アプリケーションの開発に使用する言語を指定します。 |
|
|
これはリスト属性です。デバイスで実行するメイン スクリプトまたはスクリプトのファイル名またはファイル名を指定します(ここではモジュールを指定してくさい)。主要なスクリプト ファイルは、デバイスの /var/db/scripts/jet パスの下に展開されます。 |
|
|
アプリケーションがスタンドアロン プログラムまたはデーモンになるかどうかを指定します。 |
|
|
アプリケーションに署名するか、署名を変更するかは示します。 |
|
|
アップグレードされた FreeBSD(bsd10)を使用して、アプリケーションをレガシー Junos OS(bsd6)または Junos OSに導入するかどうかを指定します。 |
|
|
アプリケーションを導入するターゲット アーキテクチャを指定します。 |
|
|
アプリケーションに関する簡単な説明(1 行)を書きます。これは、動作コマンド出力 |
|
オプションの属性
表 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 は、 アプリケーション パッケージのソース ファイルを指定するために使用できる 2 つのソース属性を示しています。次に、追加のモジュール ファイルを導入する 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/バイナリ を生成するためにコンパイルするソース ファイルです。各エントリーはキーと値のペアで、鍵はソース ファイルのパスで、値はソース ファイル名のアレイになります。 |
"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 モジュール
依存する Python モジュール( dep-py-modules )属性は、Python アプリケーションでのみ使用されます。この属性には、アプリケーションと一緒にコンパイルしてパッケージ化する必要がある、依存する Python モジュールが含まれています。属性 dep-py-modules は、Python モジュールの依存関係を複数指定できるアレイです。各依存関係は、以下のオブジェクトで構成されています。
"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"]
}
}
]