Freigeben über


CLI-Befehlshandbuch für AppCAT 7

In diesem Artikel wird die Verwendung des AppCAT CLI-Befehls beschrieben.

Befehle

Name BESCHREIBUNG
Appcat-Analyse Dieser Unterbefehl ermöglicht das Ausführen der Quellcodeanalyse für Eingabequellcode oder für eine Binärdatei.
Appcat-Transformierung Dieser Unterbefehl ermöglicht das Konvertieren von XML-Regeln in YAML.
AppCat-Version Dieser Unterbefehl druckt die Toolversion.

Appcat-Analyse

Die folgenden Abschnitte enthalten eine detaillierte Beschreibung der verfügbaren appcat analyze Befehlszeilenparameter.

Erforderliche Parameter

Parameter BESCHREIBUNG
--input Der Pfad zum Anwendungsquellcode oder eine Binärdatei für die Analyse. Verwenden Sie eine durch Trennzeichen getrennte Liste für mehrere Werte: --input <input1>,<input2>,.... Der Standardwert ist [].
--output Das Verzeichnis, in dem die Analyseergebnisse gespeichert werden.

Optionale Parameter

Kategorie Parameter BESCHREIBUNG
Quell- und Zieltechnologien
--list-sources Zeigt die verfügbaren Migrationsquellentechnologien an.
--list-targets Zeigt die verfügbaren Migrationszieltechnologien an.
--list-capabilities Zeigt die verfügbaren Migrationsfunktionen an.
--list-os Zeigt die verfügbaren Migrationszielbetriebssysteme an.
--source, -s Gibt die Quelltechnologien für die Analyse an. Verwenden Sie eine durch Trennzeichen getrennte Liste für mehrere Werte , --source <source1>,<source2>,...z. B. . Verwenden Sie das --list-sources Argument, um alle verfügbaren Quellen auflisten.
--target, -t Gibt die Zieltechnologien für die Analyse an. Verwenden Sie eine durch Trennzeichen getrennte Liste für mehrere Werte , --target <target1>,<target2>,...z. B. . Verwenden Sie das --list-targets Argument, um alle verfügbaren Ziele auflisten.
--capability, -c Gibt Fähigkeitstechnologien für die Analyse an. Verwenden Sie eine durch Trennzeichen getrennte Liste für mehrere Werte , --capability <capability1>,<capability2>,...z. B. . Verwenden Sie das --list-capabilities Argument, um alle verfügbaren Funktionen auflisten.
--os Gibt Betriebssysteme für die Analyse an. Verwenden Sie eine durch Trennzeichen getrennte Liste für mehrere Werte , --os <os1>,<os2>,...z. B. . Verwenden Sie das --list-os Argument, um alle verfügbaren Betriebssysteme auflisten.
Analyseoptionen
--analyze-known-libraries Ermöglicht die Analyse bekannter Open-Source-Bibliotheken , die in AppCAT maven.default.index angegeben sind, während der Quellcodeanalyse. Der Standardwert ist false.
--custom-maven-settings Gibt den Pfad zu einer benutzerdefinierten Maven-Einstellungsdatei an.
--dry-run Überprüft, ob die Flags gültig sind, ohne die Analyse tatsächlich auszuführen. Der Standardwert ist false.
--mode, -m Legt den Analysemodus fest. Muss entweder full - Quelle + Abhängigkeiten sein, um den Quellcode zu analysieren und Abhängigkeiten aufzulisten - oder source-only. Der Standardwert ist full.
--packages Gibt die zu bewertenden Anwendungsklassenpakete an. Verwenden Sie eine durch Trennzeichen getrennte Liste für mehrere Werte , --packages <package1>,<package2>,...z. B. . Der Standardwert ist [].
Regeloptionen
--code-snips-number Beschränkt die angezeigte Anzahl von Vorfällen mit Codeausschnitten in einer Datei. 0 bedeutet keine Beschränkung, sodass alle Vorfälle mit Codeausschnitten in einer Datei angezeigt werden. -1 bedeutet, dass keine Codeausschnitte angezeigt werden. Der Standardwert ist 0.
--enable-default-rulesets Ermöglicht die Ausführung von Standardregelsätzen. Der Standardwert ist true. Verwenden Sie --enable-default-rulesets=false, um zu deaktivieren.
--label-selector, -l Wendet Regeln basierend auf einem angegebenen Label-Selektor-Ausdruck an, z. B. (konveyor.io/target=azure-aks && konveyor.io/source).
--rules Gibt Regeldateien oder Verzeichnisse an. Verwenden Sie eine durch Trennzeichen getrennte Liste für mehrere Werte , --rules <rule1>,<rule2>,...z. B. . Der Standardwert ist [].
Proxyeinstellungen
--http-proxy Definiert eine HTTP-Proxy-URL zum Herunterladen von Open-Source-Softwarebibliotheken (OSS) aus dem Maven-Repository.
--https-proxy Definiert eine HTTPS-Proxy-URL zum Herunterladen von OSS-Bibliotheken aus dem Maven-Repository.
--no-proxy Gibt URLs an, die beim Herunterladen von OSS-Bibliotheken aus dem Maven-Repository von der Proxyverwendung ausgeschlossen werden sollen.
Berichts- und Ausgabeformatierung
--bulk Kombiniert Ergebnisse beim Ausführen von mehreren analyze Befehlen in einem Massenprozess. Der Standardwert ist false.
--context-lines-number Legt die Anzahl der Quellcodezeilen fest, die in der Ausgabe für jeden erkannten Vorfall enthalten sind. Der Standardwert ist 100.
--incident-selector Filtert Vorfälle basierend auf einem benutzerdefinierten Variablenausdruck, z. B. (!package=io.konveyor.demo.config-utils).
--output-format Wählt das Ausgabeformat aus. Entweder yaml oder json. Der Standardwert ist yaml.
--overwrite Überschreibt das vorhandene Ausgabeverzeichnis. Der Standardwert ist false.
--skip-static-report Überspringt das Generieren eines statischen Analyseberichts. Der Standardwert ist false.
Unterstützte Quellen

Der --list-sources Parameter zeigt die folgenden Quelltechnologien:

Quellname BESCHREIBUNG Quelle
Java Bewährte Methoden für die Migration von Java-Anwendungen. java
Java EE Bewährte Methoden für die Migration der Java EE-Technologie. java-ee
OpenJDK Bewährte Methoden zum Migrieren von Anwendungen mit OpenJDK. openjdk
OpenJDK 8 Bewährte Methoden für die Migration von Anwendungen mit OpenJDK 8. openjdk8
OpenJDK 9 Bewährte Methoden für die Migration von Anwendungen mit OpenJDK 9. openjdk9
OpenJDK 10 Bewährte Methoden zum Migrieren von Anwendungen mit OpenJDK 10. openjdk10
OpenJDK 11 Bewährte Methoden zum Migrieren von Anwendungen mit OpenJDK 11. openjdk11
OpenJDK 12 Bewährte Methoden zum Migrieren von Anwendungen mit OpenJDK 12. openjdk12
OpenJDK 13 Bewährte Methoden zum Migrieren von Anwendungen mit OpenJDK 13. openjdk13
OpenJDK 14 Bewährte Methoden zum Migrieren von Anwendungen mit OpenJDK 14. openjdk14
OpenJDK 15 Bewährte Methoden zum Migrieren von Anwendungen mit OpenJDK 15. openjdk15
OpenJDK 16 Bewährte Methoden zum Migrieren von Anwendungen mit OpenJDK 16. openjdk16
OpenJDK 17 Bewährte Methoden zum Migrieren von Anwendungen mit OpenJDK 17. openjdk17
OpenJDK 18 Bewährte Methoden für die Migration von Anwendungen mit OpenJDK 18. openjdk18
OpenJDK 19 Bewährte Methoden für die Migration von Anwendungen mit OpenJDK 19. openjdk19
OpenJDK 20 Bewährte Methoden zum Migrieren von Anwendungen mit OpenJDK 20. openjdk20
OpenJDK 21 Bewährte Methoden zum Migrieren von Anwendungen mit OpenJDK 21. openjdk21
Oracle JDK Bewährte Methoden für die Migration von Anwendungen mit Oracle JDK. oraclejdk
Oracle JDK 7 Bewährte Methoden für die Migration von Anwendungen mit Oracle JDK 7. oraclejdk7
RMI Bewährte Methoden zum Migrieren von Java-Anwendungen, die RMI-Technologie verwenden. rmi
RPC Bewährte Methoden zum Migrieren von Java-Anwendungen, die RPC-Technologie verwenden. rpc
Frühling 5 Bewährte Methoden für die Migration von Anwendungen, die Spring 5-Technologie verwenden. spring5
Spring Boot Bewährte Methoden für die Migration der Spring Boot-Technologie. springboot
EAP Bewährte Methoden zum Migrieren von Java-Anwendungen, die JBoss EAP-Technologie verwenden. eap
EAP 7 Bewährte Methoden zum Migrieren von Java-Anwendungen, die JBoss EAP 7-Technologie verwenden. eap7
Unterstützte Ziele

Der --list-targets Parameter zeigt die folgenden Zieltechnologien:

Zielname BESCHREIBUNG Ziel
Azure App Service Best Practices für die Bereitstellung einer App in Azure App Service azure-appservice
Azure Kubernetes-Dienst Best Practices für die Bereitstellung einer App in Azure Kubernetes Service azure-aks
Azure Container Apps – ein Dienst für containerbasierte Anwendungen Best Practices für die Bereitstellung einer App in Azure Container Apps azure-container-apps
Unterstützte Betriebssysteme

Der --list-os Parameter zeigt die folgenden Betriebssysteme:

Betriebssystemname BESCHREIBUNG OS
Linux Bewährte Methoden zum Migrieren von Anwendungen zur Linux-Plattform. linux
Fenster Bewährte Methoden zum Migrieren von Anwendungen zur Windows-Plattform. windows
Unterstützte Funktionen

Der --list-capabilities Parameter zeigt die folgenden Funktionen:

Funktionsname BESCHREIBUNG Fähigkeit
Containerisierung Bewährte Methoden für die Containerisierung von Anwendungen. containerization
OpenJDK 11 Bewährte Methoden für die Migration zu OpenJDK 11. openjdk11
OpenJDK 17 Bewährte Methoden für die Migration zu OpenJDK 17. openjdk17
OpenJDK 21 Bewährte Methoden für die Migration zu OpenJDK 21. openjdk21
Konfigurieren von Ignorieren von Dateien

Im AppCAT CLI-Installationspfad können Sie die APPCAT-Ignore-Datei so konfigurieren, dass angegebene Ordner oder Pfade beim Ausführen des appcat analyze Befehls ausgeschlossen werden.

Globale Parameter

Parameter BESCHREIBUNG
--disable-telemetry Deaktiviert Telemetrie.
--log-level Legt die Protokollierungsstufe fest. Der Standardwert ist 4.
--no-cleanup Verhindert die Bereinigung temporärer Ressourcen nach der Ausführung.

Beispiele

  • Analysieren eines Quellcodeverzeichnisses:

    appcat analyze --input <path-to-source> --output <path-to-output>
    
  • Analysieren Sie ein Quellcodeverzeichnis mit bestimmten Quell- und Zieltechnologien:

    appcat analyze \
        --input <path-to-source> \
        --output <path-to-output> \
        --source springboot \
        --target azure-aks,azure-appservice,azure-container-apps
    
  • Analysieren Sie ein Quellcodeverzeichnis mit zusätzlichen benutzerdefinierten Regeln:

    appcat analyze --input <path-to-source> --output <path-to-output> --rules <path-to-rules>
    
  • Analysieren Sie ein Quellcodeverzeichnis nur mit benutzerdefinierten Regeln, ohne Standardregeln:

    appcat analyze \
        --input /path/to/source \
        --output /path/to/output \
        --enable-default-rulesets=false \
        --rules /path/to/rules
    
  • Analysieren und Hinzufügen weiterer Anwendungsanalysen zu einem vorhandenen Ausgabeverzeichnis und statischen Bericht:

    appcat analyze \
        --input=<path-to-source-A>,<path-to-source-B>,<path-to-source-C> \
        --output=<path-to-output-ABC> \
        --target=<target-name>
    appcat analyze 
        --bulk \
        --input=<path-to-source-D> \
        --output=<path-to-output-ABC> \
        --target=<target-name>
    appcat analyze \
        --bulk \
        --input=<path-to-source-E> \
        --output=<path-to-output-ABC> \
        --target=<target-name>
    
  • Analysieren Sie ein Quellcodeverzeichnis mit einer bestimmten Quelle, um Zieltechnologien, Funktionen und Betriebssystem zu kombinieren:

    appcat analyze \
        --input <path-to-source> \
        --output <path-to-output> \
        --source springboot \
        --target azure-aks,azure-appservice,azure-container-apps
        --capability containerization
        --os windows
    

    Die --target, --capabilitiesund -os die Parameter werden mit einer AND Bedingung kombiniert, d. h., dass die Regeln gleichzeitig den folgenden Kriterien entsprechen müssen:

    • Ein Azure-Dienst wie azure-aks, azure-appservice oder azure-container-apps.
    • Die Funktion zum Erkennen von Containerisierungsproblemen.
    • Die Windows-Betriebssystemplattform.
  • Analysieren Sie ein Quellcodeverzeichnis, und behalten Sie die erkannten Kontextzeilen mit benutzerdefinierten Zeilennummern bei:

    appcat analyze \
        --input <path-to-source> \
        --output <path-to-output> \
        --context-lines-number <line-number>
    

    Der folgende Screenshot zeigt ein Beispiel für die Verwendung von --context-lines-number 3:

    Screenshot des Codeschnipsels des AppCat-Berichtsproblems mit Unterschieden beim Parameter „context-lines-number“.

  • Einschränken von Berichtsinhalten ohne Codeausschnitte:

    appcat analyze \
        --input <path-to-source> \
        --output <path-to-output> \
        --code-snips-number -1
    

    Wenn --code-snips-number -1 festgelegt ist, werden Codeausschnitte nicht in den Bericht exportiert. Dieses Verhalten verhindert, dass vertrauliche Daten einbezogen werden.

    Screenshot des AppCAT-Berichts, der den Unterschied mit und ohne Codeausschnitte zeigt.

    Sie können die metadata.privacyMode Eigenschaft auch in report.jsonüberprüfen.

    PrivacyMode-Werte:

    • Uneingeschränkt – der Bericht enthält Codeausschnitte.
    • Eingeschränkt – der Bericht enthält keine Codeausschnitte.

Appcat-Umwandlung

Konvertiert Windup-XML-Regeln in YAML.

Erforderliche Parameter

Parameter BESCHREIBUNG
--rules Konvertiert XML-Regeln in YAML.

Globale Parameter

Parameter BESCHREIBUNG
--disable-telemetry Deaktiviert Telemetrie
--log-level Legt die Protokollierungsstufe fest. Der Standardwert ist 4.
--no-cleanup Verhindert die Bereinigung temporärer Ressourcen nach der Ausführung.

Beispiele

Im folgenden Beispiel wird eine XML-Regel von Windup nach YAML konvertiert.

appcat transform rules --input <path-to-rule> --output <path-to-output-folder>

AppCat-Version

Druckt die Toolversion.

appcat version