Partilhar via


Guia de comandos da CLI para AppCAT 7

Este artigo descreve o uso do comando AppCAT CLI.

Comandos

Nome Descrição
Análise do AppCat Este subcomando permite executar a análise do código-fonte no código-fonte de entrada ou em um binário.
transformação do appcat Este subcomando permite converter regras XML para YAML.
Versão do AppCat Este subcomando imprime a versão da ferramenta.

Análise do AppCat

As seções a seguir fornecem uma descrição detalhada dos parâmetros de linha de comando disponíveis appcat analyze .

Parâmetros necessários

Parâmetro Descrição
--input O caminho para o código-fonte do aplicativo ou um arquivo binário para análise. Use uma lista separada por vírgulas para vários valores: --input <input1>,<input2>,.... O valor predefinido é [].
--output O diretório onde os resultados da análise são armazenados.

Parâmetros opcionais

Categoria Parâmetro Descrição
Tecnologias de origem e de destino
--list-sources Exibe as tecnologias de origem de migração disponíveis.
--list-targets Exibe as tecnologias de destino de migração disponíveis.
--list-capabilities Exibe os recursos de migração disponíveis
--list-os Exibe os sistemas operacionais de destino de migração disponíveis.
--source, -s Especifica as tecnologias de origem para análise. Use uma lista separada por vírgulas para vários valores - por exemplo, --source <source1>,<source2>,.... Use o --list-sources argumento para listar todas as fontes disponíveis.
--target, -t Especifica as tecnologias de destino para análise. Use uma lista separada por vírgulas para vários valores - por exemplo, --target <target1>,<target2>,.... Use o --list-targets argumento para listar todos os destinos disponíveis.
--capability, -c Especifica tecnologias de capacidade para análise. Use uma lista separada por vírgulas para vários valores - por exemplo, --capability <capability1>,<capability2>,.... Use o --list-capabilities argumento para listar todos os recursos disponíveis.
--os Especifica os sistemas operacionais para análise. Use uma lista separada por vírgulas para vários valores - por exemplo, --os <os1>,<os2>,.... Use o --list-os argumento para listar todos os sistemas operacionais disponíveis.
Opções de análise
--analyze-known-libraries Permite a análise de bibliotecas de código aberto conhecidas - especificadas em AppCAT maven.default.index - durante a análise do código-fonte. O valor predefinido é false.
--custom-maven-settings Especifica o caminho para um arquivo de configurações personalizado do Maven.
--dry-run Verifica se os sinalizadores são válidos sem realmente executar a análise. O valor predefinido é false.
--mode, -m Define o modo de análise. Deve ser um dos full - fonte + dependências, para analisar o código-fonte e listar dependências - ou source-only. O valor predefinido é full.
--packages Especifica os pacotes de classe de aplicativo a serem avaliados. Use uma lista separada por vírgulas para vários valores - por exemplo, --packages <package1>,<package2>,.... O valor predefinido é [].
Opções de regra
--code-snips-number Limita o número exibido de incidentes com trechos de código em um arquivo. 0 significa que não há limite, portanto, todos os incidentes com trechos de código em um arquivo são exibidos. -1 significa que nenhum trecho de código é exibido. O valor predefinido é 0.
--enable-default-rulesets Permite a execução de conjuntos de regras padrão. O valor predefinido é true. Use --enable-default-rulesets=false para desativar.
--label-selector, -l Aplica regras com base em uma expressão de seletor de rótulo especificada - por exemplo, (konveyor.io/target=azure-aks && konveyor.io/source).
--rules Especifica arquivos de regras ou diretórios. Use uma lista separada por vírgulas para vários valores - por exemplo, --rules <rule1>,<rule2>,.... O valor predefinido é [].
Definições de proxy
--http-proxy Define uma URL de proxy HTTP para baixar bibliotecas de software de código aberto (OSS) do repositório Maven.
--https-proxy Define uma URL de proxy HTTPS para baixar bibliotecas OSS do repositório Maven.
--no-proxy Especifica URLs a serem excluídas do uso de proxy ao baixar bibliotecas OSS do repositório Maven.
Formatação de relatório e formato de saída
--bulk Combina resultados ao executar vários comandos analyze em lote. O valor predefinido é false.
--context-lines-number Define o número de linhas de código-fonte incluídas na saída para cada incidente detetado. O valor predefinido é 100.
--incident-selector Filtra incidentes com base em uma expressão variável personalizada - por exemplo, (!package=io.konveyor.demo.config-utils).
--output-format Escolhe o formato de saída. yaml ou json. O valor predefinido é yaml.
--overwrite Substitui o diretório de saída existente. O valor predefinido é false.
--skip-static-report Ignora a geração de um relatório de análise estática. O valor predefinido é false.
Origens suportadas

O --list-sources parâmetro mostra as seguintes tecnologias de origem:

Nome da fonte Descrição Fonte
Java Melhores práticas para migrar aplicações Java. java
Java EE Melhores práticas para migrar a tecnologia Java EE. java-ee
OpenJDK Práticas recomendadas para migrar aplicativos com OpenJDK. openjdk
OpenJDK 8 Práticas recomendadas para migrar aplicativos com OpenJDK 8. openjdk8
OpenJDK 9 Práticas recomendadas para migrar aplicativos com o OpenJDK 9. openjdk9
OpenJDK 10 Práticas recomendadas para migrar aplicativos com OpenJDK 10. openjdk10
OpenJDK 11 Práticas recomendadas para migrar aplicativos com o OpenJDK 11. openjdk11
OpenJDK 12 Práticas recomendadas para migrar aplicativos com o OpenJDK 12. openjdk12
OpenJDK 13 Práticas recomendadas para migrar aplicativos com o OpenJDK 13. openjdk13
OpenJDK 14 Práticas recomendadas para migrar aplicativos com o OpenJDK 14. openjdk14
OpenJDK 15 Práticas recomendadas para migrar aplicativos com o OpenJDK 15. openjdk15
OpenJDK 16 Práticas recomendadas para migrar aplicativos com o OpenJDK 16. openjdk16
OpenJDK 17 Práticas recomendadas para migrar aplicativos com o OpenJDK 17. openjdk17
OpenJDK 18 Práticas recomendadas para migrar aplicativos com o OpenJDK 18. openjdk18
OpenJDK 19 Práticas recomendadas para migrar aplicativos com o OpenJDK 19. openjdk19
OpenJDK 20 Práticas recomendadas para migrar aplicativos com o OpenJDK 20. openjdk20
OpenJDK 21 Práticas recomendadas para migrar aplicativos com o OpenJDK 21. openjdk21
Oracle JDK Práticas recomendadas para migração de aplicativos com Oracle JDK. oraclejdk
Oracle JDK 7 [en] Práticas recomendadas para migrar aplicativos com o Oracle JDK 7. oraclejdk7
RMI Práticas recomendadas para migrar aplicativos Java que usam a tecnologia RMI. rmi
RPC Práticas recomendadas para migrar aplicativos Java que usam a tecnologia RPC. rpc
Primavera 5 Práticas recomendadas para migrar aplicativos que usam a tecnologia Spring 5. spring5
Spring Boot Práticas recomendadas para migrar a tecnologia Spring Boot. springboot
PAA Melhores práticas para migrar aplicativos Java que usam a tecnologia JBoss EAP. eap
EAP 7 Melhores práticas para migrar aplicativos Java que usam a tecnologia JBoss EAP 7. eap7
Alvos suportados

O --list-targets parâmetro mostra as seguintes tecnologias de destino:

Nome do destino Descrição Objetivo
Serviço de Aplicações do Azure Práticas recomendadas para implantar um aplicativo no Serviço de Aplicativo do Azure. azure-appservice
Azure Kubernetes Service Práticas recomendadas para implantar um aplicativo no Serviço Kubernetes do Azure. azure-aks
Azure Container Apps Práticas recomendadas para implantar um aplicativo em Aplicativos de Contêiner do Azure. azure-container-apps
Sistemas operativos suportados

O --list-os parâmetro mostra os seguintes sistemas operacionais:

Nome do SO Descrição Sistema Operativo
Linux Práticas recomendadas para migrar aplicativos para a plataforma Linux. linux
Windows Práticas recomendadas para migrar aplicativos para a plataforma Windows. windows
Capacidades suportadas

O --list-capabilities parâmetro mostra os seguintes recursos:

Nome da capacidade Descrição Capacidade
Contentorização Práticas recomendadas para aplicativos de conteinerização. containerization
OpenJDK 11 Práticas recomendadas para migrar para o OpenJDK 11. openjdk11
OpenJDK 17 Práticas recomendadas para migrar para o OpenJDK 17. openjdk17
OpenJDK 21 Práticas recomendadas para migrar para o OpenJDK 21. openjdk21
Configurar ignorar arquivos

No caminho de instalação da CLI do AppCAT, você pode configurar o arquivo .appcat-ignore para excluir pastas ou caminhos especificados ao executar o appcat analyze comando.

Parâmetros globais

Parâmetro Descrição
--disable-telemetry Desativa a telemetria.
--log-level Define o nível de log. O valor predefinido é 4.
--no-cleanup Evita a remoção de recursos temporários após a execução.

Exemplos

  • Analise um diretório de código-fonte:

    appcat analyze --input <path-to-source> --output <path-to-output>
    
  • Analise um diretório de código-fonte com tecnologias de origem e destino específicas:

    appcat analyze \
        --input <path-to-source> \
        --output <path-to-output> \
        --source springboot \
        --target azure-aks,azure-appservice,azure-container-apps
    
  • Analise um diretório de código-fonte com regras personalizadas extras:

    appcat analyze --input <path-to-source> --output <path-to-output> --rules <path-to-rules>
    
  • Analise um diretório de código-fonte usando apenas regras personalizadas, sem conjuntos de regras padrão:

    appcat analyze \
        --input /path/to/source \
        --output /path/to/output \
        --enable-default-rulesets=false \
        --rules /path/to/rules
    
  • Analise e adicione mais análise de aplicativos a um diretório de saída existente e a um relatório estático:

    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>
    
  • Analise um diretório de código-fonte com código-fonte específico para combinar tecnologias, recursos e sistema operacional de destino:

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

    Os --targetparâmetros , --capabilities, e -os são combinados com uma AND condição, o que significa que as regras devem corresponder simultaneamente aos seguintes critérios:

    • Um serviço do Azure como azure-aks, azure-appserviceou azure-container-apps.
    • A capacidade de detetar problemas de conteinerização.
    • A plataforma do sistema operacional Windows.
  • Analise um diretório de código-fonte e mantenha as linhas de contexto detetadas com números de linha personalizados:

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

    A captura de tela a seguir mostra um exemplo de uso do --context-lines-number 3:

    Captura de ecrã da diferença no trecho de código do problema relatado pelo appcat com o parâmetro número-de-linhas-de-contexto.

  • Restrinja o conteúdo do relatório sem trechos de código:

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

    Quando --code-snips-number -1 é definido, os trechos de código não são exportados para o relatório. Esse comportamento ajuda a impedir que dados confidenciais sejam incluídos.

    Captura de tela do relatório AppCAT mostrando a diferença com e sem trechos de código.

    Você também pode verificar a propriedade metadata.privacyMode em report.json.

    PrivacyMode valores:

    • Sem restrições – o relatório inclui trechos de código.
    • Restrito – o relatório não inclui trechos de código.

transformação de appcat

Converte regras XML do Windup em YAML.

Parâmetros necessários

Parâmetro Descrição
--rules Converte regras XML para YAML.

Parâmetros globais

Parâmetro Descrição
--disable-telemetry Desativa a telemetria
--log-level Define o nível de log. O valor predefinido é 4.
--no-cleanup Evita a remoção de recursos temporários após a execução.

Exemplos

O exemplo a seguir converte uma regra XML de liquidação em YAML:

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

Versão do AppCat

Imprime a versão da ferramenta.

appcat version