Partager via


Guide de commande CLI pour AppCAT 7

Cet article décrit l’utilisation de la commande CLI AppCAT.

Commandes

Nom Descriptif
appcat analyse Cette sous-commande permet d’exécuter l’analyse du code source sur le code source d’entrée ou sur un binaire.
appcat transformation Cette sous-commande permet de convertir des règles XML en YAML.
version de l'appcat Cette sous-commande imprime la version de l’outil.

analyser appcat

Les sections suivantes fournissent une description détaillée des paramètres de ligne de commande disponibles appcat analyze .

Paramètres obligatoires

Paramètre Descriptif
--input Chemin d’accès au code source de l’application ou à un fichier binaire pour l’analyse. Utilisez une liste séparée par des virgules pour plusieurs valeurs : --input <input1>,<input2>,.... La valeur par défaut est [].
--output Répertoire dans lequel les résultats de l’analyse sont stockés.

Paramètres facultatifs

Catégorie Paramètre Descriptif
Technologies sources et cibles
--list-sources Affiche les technologies sources de migration disponibles.
--list-targets Affiche les technologies cibles de migration disponibles.
--list-capabilities Affiche les fonctionnalités de migration disponibles
--list-os Affiche les systèmes d’exploitation cibles de migration disponibles.
--source, -s Spécifie les technologies sources pour l’analyse. Utilisez une liste séparée par des virgules pour plusieurs valeurs , par exemple. --source <source1>,<source2>,... Utilisez l’argument --list-sources pour répertorier toutes les sources disponibles.
--target, -t Spécifie les technologies cibles à analyser. Utilisez une liste séparée par des virgules pour plusieurs valeurs , par exemple. --target <target1>,<target2>,... Utilisez l’argument --list-targets pour répertorier toutes les cibles disponibles.
--capability, -c Spécifie les technologies de capacité pour l’analyse. Utilisez une liste séparée par des virgules pour plusieurs valeurs , par exemple. --capability <capability1>,<capability2>,... Utilisez l’argument --list-capabilities pour répertorier toutes les fonctionnalités disponibles.
--os Spécifie les systèmes d’exploitation pour l’analyse. Utilisez une liste séparée par des virgules pour plusieurs valeurs , par exemple. --os <os1>,<os2>,... Utilisez l’argument --list-os pour répertorier tous les systèmes d’exploitation disponibles.
Options d’analyse
--analyze-known-libraries Active l’analyse des bibliothèques open source connues , spécifiées dans AppCAT, pendant l’analyse maven.default.index du code source. La valeur par défaut est false.
--custom-maven-settings Spécifie le chemin d’accès à un fichier de paramètres Maven personnalisé.
--dry-run Vérifie si les indicateurs sont valides sans exécuter réellement l’analyse. La valeur par défaut est false.
--mode, -m Définit le mode d’analyse. Doit correspondre à l’une des valeurs suivantes : full – la source + dépendances pour analyser le code source et lister les dépendances – ou source-only. La valeur par défaut est full.
--packages Spécifie les packages de classe d’application à évaluer. Utilisez une liste séparée par des virgules pour plusieurs valeurs , par exemple. --packages <package1>,<package2>,... La valeur par défaut est [].
Options de règle
--code-snips-number Limite le nombre d’incidents affichés avec des extraits de code dans un fichier. 0 signifie qu'il n'y a pas de limite, tous les incidents contenant des extraits de code dans un fichier sont affichés. -1 signifie qu’aucun extrait de code n’est affiché. La valeur par défaut est 0.
--enable-default-rulesets Active l’exécution des ensembles de règles par défaut. La valeur par défaut est true. Utilisez --enable-default-rulesets=false pour désactiver.
--label-selector, -l Applique des règles basées sur une expression de sélecteur d’étiquette spécifiée , par exemple. (konveyor.io/target=azure-aks && konveyor.io/source)
--rules Spécifie les fichiers de règle ou les répertoires. Utilisez une liste séparée par des virgules pour plusieurs valeurs , par exemple. --rules <rule1>,<rule2>,... La valeur par défaut est [].
Paramètres du proxy
--http-proxy Définit une URL de proxy HTTP pour télécharger des bibliothèques de logiciels open source (OSS) à partir du référentiel Maven.
--https-proxy Définit une URL de proxy HTTPS pour télécharger des bibliothèques OSS à partir du référentiel Maven.
--no-proxy Spécifie les URL à exclure de l’utilisation du proxy lors du téléchargement des bibliothèques OSS à partir du référentiel Maven.
Mise en forme de rapport et de sortie
--bulk Combine les résultats lors de l’exécution de plusieurs analyze commandes en bloc. La valeur par défaut est false.
--context-lines-number Définit le nombre de lignes de code source incluses dans la sortie pour chaque incident détecté. La valeur par défaut est 100.
--incident-selector Filtre les incidents basés sur une expression de variable personnalisée , par exemple (!package=io.konveyor.demo.config-utils).
--output-format Choisit le format de sortie. yaml ou json. La valeur par défaut est yaml.
--overwrite Remplace le répertoire de sortie existant. La valeur par défaut est false.
--skip-static-report Ignore la génération d’un rapport d’analyse statique. La valeur par défaut est false.
Sources prises en charge

Le --list-sources paramètre affiche les technologies sources suivantes :

Nom de la source Descriptif Origine
Java Bonnes pratiques pour la migration d’applications Java. java
Java EE Meilleures pratiques pour la migration de la technologie Java EE. java-ee
OpenJDK Bonnes pratiques pour la migration d’applications avec OpenJDK. openjdk
OpenJDK 8 Meilleures pratiques pour la migration d’applications avec OpenJDK 8. openjdk8
OpenJDK 9 Meilleures pratiques pour la migration d’applications avec OpenJDK 9. openjdk9
OpenJDK 10 Meilleures pratiques pour la migration d’applications avec OpenJDK 10. openjdk10
OpenJDK 11 Meilleures pratiques pour la migration d’applications avec OpenJDK 11. openjdk11
OpenJDK 12 Meilleures pratiques pour la migration d’applications avec OpenJDK 12. openjdk12
OpenJDK 13 Bonnes pratiques pour la migration d’applications avec OpenJDK 13. openjdk13
OpenJDK 14 Meilleures pratiques pour la migration d’applications avec OpenJDK 14. openjdk14
OpenJDK 15 Bonnes pratiques pour la migration d’applications avec OpenJDK 15. openjdk15
OpenJDK 16 Meilleures pratiques pour la migration d’applications avec OpenJDK 16. openjdk16
OpenJDK 17 Bonnes pratiques pour la migration d’applications avec OpenJDK 17. openjdk17
OpenJDK 18 Meilleures pratiques pour la migration d’applications avec OpenJDK 18. openjdk18
OpenJDK 19 Bonnes pratiques pour la migration d’applications avec OpenJDK 19. openjdk19
OpenJDK 20 Bonnes pratiques pour la migration d’applications avec OpenJDK 20. openjdk20
OpenJDK 21 Bonnes pratiques pour la migration d’applications avec OpenJDK 21. openjdk21
Oracle JDK Meilleures pratiques pour la migration d’applications avec Le JDK Oracle. oraclejdk
Oracle JDK 7 Meilleures pratiques pour la migration d’applications avec Oracle JDK 7. oraclejdk7
RMI Meilleures pratiques pour la migration d’applications Java qui utilisent la technologie RMI. rmi
RPC Meilleures pratiques pour la migration d’applications Java qui utilisent la technologie RPC. rpc
Printemps 5 Meilleures pratiques pour la migration d’applications qui utilisent la technologie Spring 5. spring5
Spring Boot Bonnes pratiques pour la migration de la technologie Spring Boot. springboot
EAP (Protocole d'authentification extensible) Meilleures pratiques pour la migration d’applications Java qui utilisent la technologie JBoss EAP. eap
EAP 7 Meilleures pratiques pour la migration d’applications Java qui utilisent la technologie JBoss EAP 7. eap7
Cibles prises en charge

Le --list-targets paramètre affiche les technologies cibles suivantes :

Nom de la cible Descriptif Cible
Azure App Service Meilleures pratiques de déploiement d’une application sur Azure App Service. azure-appservice
Azure Kubernetes Service Meilleures pratiques de déploiement d’une application sur Azure Kubernetes Service. azure-aks
Azure Container Apps (Applications de Conteneur Azure) Meilleures pratiques de déploiement d’une application sur Azure Container Apps. azure-container-apps
Systèmes d'exploitation pris en charge

Le --list-os paramètre affiche les systèmes d’exploitation suivants :

Nom du système d’exploitation Descriptif Système d'exploitation
Linux Bonnes pratiques pour la migration d’applications vers la plateforme Linux. linux
Fenêtres Bonnes pratiques pour la migration d’applications vers la plateforme Windows. windows
Fonctionnalités prises en charge

Le --list-capabilities paramètre affiche les fonctionnalités suivantes :

Nom de fonctionnalité Descriptif Capacité
Mise en conteneur Meilleures pratiques pour la conteneurisation d’applications. containerization
OpenJDK 11 Bonnes pratiques pour la migration vers OpenJDK 11. openjdk11
OpenJDK 17 Bonnes pratiques pour la migration vers OpenJDK 17. openjdk17
OpenJDK 21 Meilleures pratiques pour la migration vers OpenJDK 21. openjdk21
Configurer les fichiers ignorés

Dans le chemin d’installation de l’interface CLI AppCAT, vous pouvez configurer le fichier .appcat-ignore pour exclure les dossiers ou chemins spécifiés lors de l’exécution de la appcat analyze commande.

Paramètres globaux

Paramètre Descriptif
--disable-telemetry Désactive la télémétrie.
--log-level Définit le niveau de journalisation. La valeur par défaut est 4.
--no-cleanup Empêche le nettoyage des ressources temporaires après l’exécution.

Exemples

  • Analysez un répertoire de code source :

    appcat analyze --input <path-to-source> --output <path-to-output> --target <target-name>
    
  • Analysez un répertoire de code source avec des technologies sources et cibles spécifiques :

    appcat analyze \
        --input <path-to-source> \
        --output <path-to-output> \
        --source springboot \
        --target azure-aks,azure-appservice,azure-container-apps
    
  • Analysez un répertoire de code source avec des règles personnalisées supplémentaires :

    appcat analyze --input <path-to-source> --output <path-to-output> --rules <path-to-rules> --target <target-name>
    
  • Analysez un répertoire de code source à l’aide de règles personnalisées uniquement, sans ensembles de règles par défaut :

    appcat analyze \
        --input /path/to/source \
        --output /path/to/output \
        --enable-default-rulesets=false \
        --rules /path/to/rules
        --target azure-aks,azure-appservice,azure-container-apps
    
  • Analysez et ajoutez d’autres analyses d’application à un répertoire de sortie existant et à un rapport statique :

    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>
    
  • Analysez un répertoire de code source avec une source spécifique pour combiner les technologies cibles, les fonctionnalités et le système d’exploitation :

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

    Les paramètres --target, --capabilities et -os sont combinés avec une condition AND, ce qui signifie que les règles doivent simultanément correspondre aux critères suivants :

    • Un service Azure tel que azure-aks, azure-appserviceou azure-container-apps.
    • Capacité à détecter les problèmes de conteneurisation.
    • Plateforme du système d’exploitation Windows.
  • Analysez un répertoire de code source et conservez les lignes de contexte détectées avec des numéros de ligne personnalisés :

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

    La capture d’écran suivante montre un exemple d’utilisation --context-lines-number 3:

    Capture d’écran de la différence d’extrait de code du rapport appcat avec le paramètre context-lines-number.

  • Restreindre le contenu du rapport sans extraits de code :

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

    Quand --code-snips-number -1 elle est définie, les extraits de code ne sont pas exportés vers le rapport. Ce comportement permet d’empêcher l’inclusion de données sensibles.

    Capture d’écran du rapport AppCAT montrant la différence avec et sans extraits de code.

    Vous pouvez également vérifier la metadata.privacyMode propriété dans report.json.

    PrivacyMode valeurs :

    • Sans restriction : le rapport inclut des extraits de code.
    • Restreint : le rapport n’inclut pas d’extraits de code.

transformer appcat

Convertit les règles XML Windup en YAML.

Paramètres obligatoires

Paramètre Descriptif
--rules Convertit les règles XML en YAML.

Paramètres globaux

Paramètre Descriptif
--disable-telemetry Désactive la télémétrie
--log-level Définit le niveau de journalisation. La valeur par défaut est 4.
--no-cleanup Empêche le nettoyage des ressources temporaires après l’exécution.

Exemples

L’exemple suivant convertit une règle XML windup en YAML :

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

version appcat

Imprime la version de l’outil.

appcat version