Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Paket-JET-Anwendungen

Schreiben Sie nach Abschluss der Anwendungsentwicklung die JSON-Datei (JavaScript Object Notation), in der der Inhalt zum Erstellen und Packen der Anwendung beschrieben wird, bevor Sie sie auf dem Gerät bereitstellen. JSON ist ein leichtgewichtiges Datenaustauschformat. Es ist für Menschen leicht zu lesen und zu schreiben und auch für Maschinen einfach zu analysieren und zu generieren. Weitere Informationen finden Sie unter https://www.json.org.

JSON-Dateien bestehen aus einer Sammlung von Attributen, die in einer Reihe von geschweiften Klammern enthalten sind. Attribute verwenden zwei Strukturen:

  • Eine Auflistung von Schlüssel-Wert-Paaren.

  • Eine geordnete Liste von Werten.

Lesen Sie weiter, um mehr über die einzelnen Attribute zu erfahren, die im JSON-Format für die Anwendungspaketierung enthalten sind.

Attribute des Hauptabschnitts

Der oberste Block der JSON-Datei ist der Hauptabschnitt der Datei. Es besteht aus obligatorischen und optionalen Attributen.

Obligatorische Attribute

In Tabelle 1 werden die obligatorischen Attribute beschrieben, die alle JSON-Dateien für die Anwendungspaketierung im Hauptabschnitt aufweisen müssen. Im Folgenden finden Sie ein Beispiel für eine einfache JSON-Anwendungsdatei, die nur die obligatorischen Attribute enthält:

Tabelle 1: Obligatorische Attribute im Hauptabschnitt der JSON-Datei

Attribut

Beschreibung

Beispielwerte

"app-name"

Geben Sie den Namen der Anwendung an.

"sample_pyapp"

"app-path"

Geben Sie den Pfad zum Implementierungsverzeichnis der Anwendung an. Alle Pfade sollten relativ zu sandbox src sein.

"python/sample_pyapp"

"language"

Geben Sie die Sprache an, die für die Entwicklung der Anwendung verwendet wird.

"python", "c", "c++"

"main-scripts"

Dies ist eine Liste von Attributen. Geben Sie den Dateinamen oder die Dateinamen des Hauptskripts oder der Skripte an, die auf dem Gerät ausgeführt werden (geben Sie das Modul hier nicht an). Die Hauptskriptdateien werden unter dem Pfad / var/db/scripts/jet auf dem Gerät bereitgestellt.

["foo.py", "bar.py"]

"app-type"

Geben Sie an, ob eine Anwendung ein eigenständiges Programm oder ein Daemon sein soll.

"standalone" Oder "daemon"

"sign"

Geben Sie an, ob die Anwendung signiert oder nicht signiert werden soll.

"yes" Oder "no"

"os-type"

Geben Sie an, ob die Anwendung auf einem älteren Junos OS (bsd6) oder einem Junos OS mit aktualisiertem FreeBSD (bsd10) bereitgestellt werden soll.

"bsd6", bsd10oder "bsd11"

"target-arch"

Geben Sie die Zielarchitektur an, auf der die Anwendung bereitgestellt werden soll.

"i386", , "powerpc""octeon", "xlr"oder"arm"

"description"

Schreiben Sie eine kurze (einzeilige) Beschreibung der Anwendung. Dies wird in der Ausgabe des Betriebsbefehls show version angezeigt.

"Simple Python test app"

Optionale Attribute

In Tabelle 2 werden die optionalen Attribute beschrieben, die Sie in den Hauptabschnitt der JSON-Datei für die Anwendungspaketierung aufnehmen können. Im Folgenden finden Sie ein Beispiel für einen Hauptabschnitt mit obligatorischen und optionalen Attributen:

Tabelle 2: Optionale Attribute im Hauptabschnitt der JSON-Datei

Attribut

Beschreibung

Beispielwerte

"c-compiler-flags"

Geben Sie ggf. die Liste der C-Compilerflags an. Kompilierungsflags können für den Hauptabschnitt, abhängige Bibliotheken (dep-libs) oder abhängige Python-Module (dep-py-modules) definiert werden.

"flag1 flag2 flag3"

"c++-compiler-flags"

Geben Sie ggf. die Liste der C++-Compilerflags an. Kompilierungsflags können für den Hauptabschnitt, abhängige Bibliotheken (dep-libs) oder abhängige Python-Module (dep-py-modules) definiert werden.

"flag1 flag2 flag3"

"linker-flags"

Geben Sie ggf. die Liste der Linkerflags an. Verwenden Sie diese Flags, um zusätzliche Bibliotheken anzugeben, auf die verlinkt werden soll, oder zusätzliche Link-spezifische Flags, die während der Verknüpfung erforderlich sind. Sie können Linker-spezifische Flags entweder im Hauptabschnitt oder im Abschnitt dep-py-modules definieren.

"flag1 flag2 flag3"

Quellattribute

Tabelle 3 zeigt zwei Quellattribute, mit denen Sie Quelldateien für das Anwendungspaket angeben können. Im Folgenden finden Sie ein Beispiel für eine Python-Anwendung mit zusätzlichen Moduldateien, die zusammen mit der Hauptskriptdatei bereitgestellt werden sollen:

Tabelle 3: Quellattribute, die Sie in einer JSON-Datei verwenden können

Attribut

Beschreibung

Beispielwerte

"srcs"

Geben Sie die Liste der zusätzlichen Quelldateien an. Bei Python-Anwendungen sind diese Quelldateien die zusätzlichen Moduldateien. Bei C- oder C++-Anwendungen sind diese Quelldateien die Quelldateien, die kompiliert werden müssen, um lib/binary zu generieren. Jeder Eintrag sollte ein Schlüssel-Wert-Paar sein, wobei der Schlüssel der Pfad der Quelldateien und der Wert ein Array von Quelldateinamen ist.

"srcs": { 
      "python/sample_pyapp": ["a.py", "b.py"], 
     "python/sample_pyapp/temp": ["temp1.py", "temp2.py"] 
} 

"extn-srcs"

Dieser Abschnitt gilt nur für Python. Geben Sie die Liste der C- oder C++-Moduldateien an, die kompiliert werden sollen. Jeder Eintrag sollte ein Schlüssel-Wert-Paar sein, wobei der Schlüssel der Pfad der Quelldateien und der Wert ein Array von Quelldateinamen ist.

"extn-srcs": { 
    "python/sample_pyapp": ["foo.c", "bar.c"], 
    "python/sample_pyapp/temp": ["1.cpp", "2.cpp"] 
       }

Abhängige Bibliotheken

Sie müssen alle abhängigen Bibliotheken kompilieren, die im Abschnitt abhängige Bibliotheken (dep-libs) verfügbar sind. Die aus diesem JSON-Code generierte Bibliothek wird mit der Anwendung gepackt. Der dep-libs Abschnitt besteht aus einem Array mehrerer Bibliotheksabhängigkeiten, die jeweils aus den folgenden Schlüssel-Namen-Paaren bestehen:

  • "lib-name" ist der Name der Bibliothek.

  • "lib-path" ist der Pfad des Bibliotheksquellcodes in der Entwicklungs-Sandbox.

  • "srcs" ist ein Schlüssel-Wert-Paar, bei dem der Pfad der Schlüssel und sein Wert eine Liste von Quelldateien ist.

Im Folgenden finden Sie ein Beispiel für ein dep-libs Attribut:

Abhängige Python-Module

Das Attribut abhängige Python-Module (dep-py-modules) wird nur für Python-Anwendungen verwendet. Dieses Attribut enthält alle abhängigen Python-Module, die mit der Anwendung kompiliert und gepackt werden müssen. Das dep-py-modules Attribut ist ein Array, in dem Sie mehrere Abhängigkeiten von Python-Modulen angeben können. Jede Abhängigkeit besteht aus den folgenden Objekten:

  • "py-module-name" ist der Name des Python-Moduls.

  • "py-module-path" ist der Pfad des Quellcodes des Python-Moduls in der Entwicklungs-Sandbox.

  • "srcs" ist ein Schlüssel-Wert-Paar, bei dem der Pfad der Schlüssel und sein Wert eine Liste von Quelldateien ist.

  • "extn-srcs" ist ein Schlüssel-Wert-Paar, bei dem der Pfad der Schlüssel ist und sein Wert eine Liste von Quelldateien der Python-Erweiterung ist.

Im Folgenden finden Sie ein Beispiel für ein dep-py-modules Attribut: