Udostępnij za pośrednictwem


Przewodnik poleceń CLI dla AppCAT 7

W tym artykule opisano użycie polecenia CLI usługi AppCAT.

Komendy

Nazwa Opis
appcat analyze To podpolecenie umożliwia uruchamianie analizy kodu źródłowego w kodzie źródłowym wejściowym lub w pliku binarnym.
przekształcenie appcat To podpolecenie umożliwia konwertowanie reguł XML na YAML.
wersja serwera appcat To polecenie wyświetla wersję narzędzia.

appcat analyze

Poniższe sekcje zawierają szczegółowy opis dostępnych appcat analyze parametrów wiersza polecenia.

Wymagane parametry

Parametr Opis
--input Ścieżka do kodu źródłowego aplikacji lub pliku binarnego do analizy. Użyj listy rozdzielanej przecinkami dla wielu wartości: --input <input1>,<input2>,.... Wartość domyślna to [].
--output Katalog, w którym są przechowywane wyniki analizy.

Parametry opcjonalne

Kategoria Parametr Opis
Technologie źródłowe i docelowe
--list-sources Wyświetla dostępne technologie źródła migracji.
--list-targets Wyświetla dostępne technologie docelowe migracji.
--list-capabilities Wyświetla dostępne możliwości migracji
--list-os Przedstawia dostępne docelowe systemy operacyjne migracji.
--source, -s Określa technologie źródłowe do analizy. Użyj listy rozdzielanej przecinkami dla wielu wartości — na przykład --source <source1>,<source2>,.... Użyj argumentu , --list-sources aby wyświetlić listę wszystkich dostępnych źródeł.
--target, -t Określa technologie docelowe do analizy. Użyj listy rozdzielanej przecinkami dla wielu wartości — na przykład --target <target1>,<target2>,.... Użyj argumentu , --list-targets aby wyświetlić listę wszystkich dostępnych obiektów docelowych.
--capability, -c Określa technologie możliwości analizy. Użyj listy rozdzielanej przecinkami dla wielu wartości — na przykład --capability <capability1>,<capability2>,.... Użyj argumentu , --list-capabilities aby wyświetlić listę wszystkich dostępnych możliwości.
--os Określa systemy operacyjne do analizy. Użyj listy rozdzielanej przecinkami dla wielu wartości — na przykład --os <os1>,<os2>,.... Użyj argumentu , --list-os aby wyświetlić listę wszystkich dostępnych systemów operacyjnych.
Opcje analizy
--analyze-known-libraries Umożliwia analizę znanych bibliotek typu open source — określonych w usłudze AppCAT maven.default.index — podczas analizy kodu źródłowego. Wartość domyślna to false.
--custom-maven-settings Określa ścieżkę do niestandardowego pliku ustawień programu Maven.
--dry-run Sprawdza, czy flagi są prawidłowe bez faktycznego uruchomienia analizy. Wartość domyślna to false.
--mode, -m Ustawia tryb analizy. Musi być jednym z full - źródło + zależności, aby przeanalizować kod źródłowy i wymienić zależności - lub source-only. Wartość domyślna to full.
--packages Określa pakiety klas aplikacji do oceny. Użyj listy rozdzielanej przecinkami dla wielu wartości — na przykład --packages <package1>,<package2>,.... Wartość domyślna to [].
Opcje reguły
--code-snips-number Ogranicza wyświetlaną liczbę zdarzeń z fragmentami kodu w pliku. 0 oznacza brak limitu, więc są wyświetlane wszystkie incydenty z fragmentami kodu w pliku. -1 oznacza, że nie są wyświetlane fragmenty kodu. Wartość domyślna to 0.
--enable-default-rulesets Włącza wykonywanie domyślnych zestawów reguł. Wartość domyślna to true. Użyj polecenia --enable-default-rulesets=false , aby wyłączyć.
--label-selector, -l Stosuje reguły na podstawie określonego wyrażenia selektora etykiet — na przykład (konveyor.io/target=azure-aks && konveyor.io/source).
--rules Określa pliki reguł lub katalogi. Użyj listy rozdzielanej przecinkami dla wielu wartości — na przykład --rules <rule1>,<rule2>,.... Wartość domyślna to [].
Ustawienia serwera proxy
--http-proxy Definiuje adres URL serwera proxy HTTP do pobierania bibliotek oprogramowania open source (OSS) z repozytorium Maven.
--https-proxy Definiuje adres URL serwera proxy HTTPS do pobierania bibliotek systemu operacyjnego z repozytorium Maven.
--no-proxy Określa adresy URL do wykluczenia z użycia serwera proxy podczas pobierania bibliotek systemu operacyjnego z repozytorium Maven.
Formatowanie raportów i danych wyjściowych
--bulk Łączy wyniki podczas uruchamiania wielu analyze poleceń zbiorczo. Wartość domyślna to false.
--context-lines-number Ustawia liczbę wierszy kodu źródłowego uwzględnionych w danych wyjściowych dla każdego wykrytego zdarzenia. Wartość domyślna to 100.
--incident-selector Filtruje zdarzenia na podstawie niestandardowego wyrażenia zmiennej — na przykład (!package=io.konveyor.demo.config-utils).
--output-format Wybiera format danych wyjściowych. yaml lub json. Wartość domyślna to yaml.
--overwrite Zastępuje istniejący katalog wyjściowy. Wartość domyślna to false.
--skip-static-report Pomija generowanie raportu analizy statycznej. Wartość domyślna to false.
Obsługiwane źródła

Parametr --list-sources przedstawia następujące technologie źródłowe:

Nazwa źródła Opis Źródło
Java Najlepsze rozwiązania dotyczące migrowania aplikacji Java. java
Java EE Najlepsze rozwiązania dotyczące migrowania technologii Java EE. java-ee
OpenJDK Najlepsze rozwiązania dotyczące migrowania aplikacji za pomocą zestawu OpenJDK. openjdk
OpenJDK 8 Najlepsze rozwiązania dotyczące migrowania aplikacji za pomocą zestawu OpenJDK 8. openjdk8
OpenJDK 9 Najlepsze rozwiązania dotyczące migrowania aplikacji za pomocą zestawu OpenJDK 9. openjdk9
OpenJDK 10 Najlepsze rozwiązania dotyczące migrowania aplikacji za pomocą zestawu OpenJDK 10. openjdk10
OpenJDK 11 Najlepsze rozwiązania dotyczące migrowania aplikacji za pomocą zestawu OpenJDK 11. openjdk11
OpenJDK 12 Najlepsze rozwiązania dotyczące migrowania aplikacji za pomocą zestawu OpenJDK 12. openjdk12
OpenJDK 13 Najlepsze rozwiązania dotyczące migrowania aplikacji za pomocą zestawu OpenJDK 13. openjdk13
OpenJDK 14 Najlepsze rozwiązania dotyczące migrowania aplikacji za pomocą zestawu OpenJDK 14. openjdk14
OpenJDK 15 Najlepsze rozwiązania dotyczące migrowania aplikacji za pomocą zestawu OpenJDK 15. openjdk15
OpenJDK 16 Najlepsze rozwiązania dotyczące migrowania aplikacji za pomocą zestawu OpenJDK 16. openjdk16
OpenJDK 17 Najlepsze rozwiązania dotyczące migrowania aplikacji za pomocą zestawu OpenJDK 17. openjdk17
OpenJDK 18 Najlepsze rozwiązania dotyczące migrowania aplikacji za pomocą zestawu OpenJDK 18. openjdk18
OpenJDK 19 Najlepsze rozwiązania dotyczące migrowania aplikacji za pomocą zestawu OpenJDK 19. openjdk19
OpenJDK 20 Najlepsze rozwiązania dotyczące migrowania aplikacji za pomocą zestawu OpenJDK 20. openjdk20
OpenJDK 21 Najlepsze rozwiązania dotyczące migrowania aplikacji za pomocą zestawu OpenJDK 21. openjdk21
Oracle JDK Najlepsze rozwiązania dotyczące migrowania aplikacji za pomocą zestawu Oracle JDK. oraclejdk
Oracle JDK 7 Najlepsze rozwiązania dotyczące migrowania aplikacji za pomocą zestawu Oracle JDK 7. oraclejdk7
RMI Najlepsze rozwiązania dotyczące migrowania aplikacji Java korzystających z technologii RMI. rmi
zdalne wywołanie procedury Najlepsze rozwiązania dotyczące migrowania aplikacji Java korzystających z technologii RPC. rpc
Spring 5 Najlepsze rozwiązania dotyczące migrowania aplikacji korzystających z technologii Spring 5. spring5
Spring Boot Najlepsze rozwiązania dotyczące migrowania technologii Spring Boot. springboot
Protokół EAP Najlepsze rozwiązania dotyczące migrowania aplikacji Java korzystających z technologii JBoss EAP. eap
EAP 7 Najlepsze rozwiązania dotyczące migrowania aplikacji Java korzystających z technologii JBoss EAP 7. eap7
Obsługiwane obiekty docelowe

Parametr --list-targets przedstawia następujące technologie docelowe:

Nazwa docelowa Opis Cel
Azure App Service Najlepsze praktyki dotyczące wdrażania aplikacji w usłudze Azure App Service. azure-appservice
Azure Kubernetes Service Najlepsze rozwiązania dotyczące wdrażania aplikacji w usłudze Azure Kubernetes Service. azure-aks
Azure Container Apps Najlepsze rozwiązania dotyczące wdrażania aplikacji w usłudze Azure Container Apps. azure-container-apps
Obsługiwane systemy operacyjne

Parametr --list-os przedstawia następujące systemy operacyjne:

Nazwa systemu operacyjnego Opis System operacyjny
Linux Najlepsze rozwiązania dotyczące migrowania aplikacji na platformę Linux. linux
Windows Najlepsze rozwiązania dotyczące migrowania aplikacji na platformę Windows. windows
Obsługiwane możliwości

Parametr --list-capabilities przedstawia następujące możliwości:

Nazwa możliwości Opis Capability
Konteneryzacja Najlepsze rozwiązania dotyczące konteneryzowania aplikacji. containerization
OpenJDK 11 Najlepsze rozwiązania dotyczące migracji do zestawu OpenJDK 11. openjdk11
OpenJDK 17 Najlepsze rozwiązania dotyczące migracji do zestawu OpenJDK 17. openjdk17
OpenJDK 21 Najlepsze rozwiązania dotyczące migracji do zestawu OpenJDK 21. openjdk21
Konfigurowanie ignorowania plików

W ścieżce instalacji CLI AppCAT można skonfigurować plik .appcat-ignore, aby wykluczyć określone foldery lub ścieżki podczas uruchamiania polecenia appcat analyze.

Parametry globalne

Parametr Opis
--disable-telemetry Wyłącza telemetrię.
--log-level Ustawia poziom rejestrowania. Wartość domyślna to 4.
--no-cleanup Uniemożliwia czyszczenie zasobów tymczasowych po wykonaniu.

Przykłady

  • Analizowanie katalogu kodu źródłowego:

    appcat analyze --input <path-to-source> --output <path-to-output> --target <target-name>
    
  • Analizowanie katalogu kodu źródłowego przy użyciu określonych technologii źródłowych i docelowych:

    appcat analyze \
        --input <path-to-source> \
        --output <path-to-output> \
        --source springboot \
        --target azure-aks,azure-appservice,azure-container-apps
    
  • Analizowanie katalogu kodu źródłowego przy użyciu dodatkowych reguł niestandardowych:

    appcat analyze --input <path-to-source> --output <path-to-output> --rules <path-to-rules> --target <target-name>
    
  • Analizowanie katalogu kodu źródłowego przy użyciu tylko reguł niestandardowych bez domyślnych zestawów reguł:

    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
    
  • Analizuj i dodaj dodatkową analizę aplikacji do istniejącego katalogu wyjściowego i raportu statycznego.

    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>
    
  • Przeanalizuj katalog kodu źródłowego z określonym źródłem, aby połączyć technologie docelowe, możliwości i system operacyjny:

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

    Parametry --target, --capabilitiesi -os są łączone z warunkiem, co oznacza, że reguły muszą być jednocześnie zgodne z AND następującymi kryteriami:

    • Usługa platformy Azure, taka jak azure-aks, azure-appservicelub azure-container-apps.
    • Możliwość wykrywania problemów z konteneryzacją.
    • Platforma systemu operacyjnego Windows.
  • Przeanalizuj katalog kodu źródłowego i zapamiętaj wykryte wiersze kontekstu z niestandardowymi numerami wierszy.

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

    Poniższy zrzut ekranu przedstawia przykład użycia polecenia --context-lines-number 3:

    Zrzut ekranu raportu problemu z appcat, przedstawiający różnicę fragmentu kodu z parametrem liczby linii kontekstu.

  • Ogranicz zawartość raportu bez fragmentów kodu:

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

    Po --code-snips-number -1 ustawieniu fragmenty kodu nie są eksportowane do raportu. To zachowanie pomaga zapobiec dołączaniu poufnych danych.

    Zrzut ekranu przedstawiający raport AppCAT przedstawiający różnicę z fragmentami kodu i bez ich użycia.

    Możesz również sprawdzić właściwość metadata.privacyMode w report.json.

    PrivacyMode wartości:

    • Bez ograniczeń — raport zawiera fragmenty kodu.
    • Ograniczone — raport nie zawiera fragmentów kodu.

przekształcenie appcat

Konwertuje reguły XML Windup na YAML.

Wymagane parametry

Parametr Opis
--rules Konwertuje reguły XML na YAML.

Parametry globalne

Parametr Opis
--disable-telemetry Wyłącza telemetrię
--log-level Ustawia poziom rejestrowania. Wartość domyślna to 4.
--no-cleanup Uniemożliwia czyszczenie zasobów tymczasowych po wykonaniu.

Przykłady

Poniższy przykład konwertuje regułę XML windup na YAML:

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

wersja appcat

Drukuje wersję narzędzia.

appcat version