Compartilhar via


Guia de comando da CLI para AppCAT 7

Este artigo descreve o uso de comando da CLI do AppCAT.

Commands

Nome Description
appcat analyze Esse subcomando habilita a execução da análise de código-fonte no código-fonte de entrada ou em um binário.
appcat transform Esse subcomando permite converter regras XML em YAML.
appcat version Esse subcomando imprime a versão da ferramenta.

appcat analyze

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 Description
--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 padrão é [].
--output O diretório em que os resultados da análise são armazenados.

Parâmetros opcionais

Categoria Parâmetro Description
Tecnologias de origem e 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 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 Habilita a análise de bibliotecas de software livre conhecidas - especificadas no AppCAT - durante a análise do código-fonte. O valor padrão é 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 padrão é false.
--mode, -m Define o modo de análise. Deve ser uma das seguintes opções: full - origem + dependências, para analisar o código-fonte e listar as dependências - ou source-only. O valor padrão é 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 padrão é [].
Opções de regra
--code-snips-number Limita a quantidade exibida de incidentes com trechos de código em um arquivo. 0 significa que não há limite, portanto, todos os incidentes com snippets de código em um arquivo são exibidos. -1 significa que nenhum snippet de código é exibido. O valor padrão é 0.
--enable-default-rulesets Habilita a execução de conjuntos de regras padrão. O valor padrão é 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 os arquivos ou diretórios de regras. Use uma lista separada por vírgulas para vários valores , por exemplo, --rules <rule1>,<rule2>,.... O valor padrão é [].
Configurações de proxy
--http-proxy Define uma URL de proxy HTTP para baixar bibliotecas de software de software livre (OSS) do repositório Maven.
--https-proxy Define uma URL de proxy HTTPS para baixar bibliotecas de OSS do repositório Maven.
--no-proxy Especifica URLs a serem excluídas do uso de proxy ao baixar bibliotecas de OSS do repositório Maven.
Formatação de relatório e saída
--bulk Combina resultados ao executar vários analyze comandos em lote. O valor padrão é false.
--context-lines-number Define o número de linhas de código-fonte incluídas na saída para cada incidente detectado. O valor padrão é 100.
--incident-selector Filtra incidentes com base em uma expressão de variável personalizada , por exemplo, (!package=io.konveyor.demo.config-utils).
--output-format Escolhe o formato de saída. yaml ou json. O valor padrão é yaml.
--overwrite Substitui o diretório de saída existente. O valor padrão é false.
--skip-static-report Ignora a geração de um relatório de análise estática. O valor padrão é false.
Fontes compatíveis

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

Nome de origem Description Source
Java Práticas recomendadas para migrar aplicativos Java. java
Java EE Práticas recomendadas para migrar a tecnologia Java EE. java-ee
OpenJDK Práticas recomendadas para migrar aplicativos com o OpenJDK. openjdk
OpenJDK 8 Práticas recomendadas para migrar aplicativos com o 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 o 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 migrar aplicativos com o Oracle JDK. oraclejdk
Oracle JDK 7 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
Programa de Assistência ao Empregado (EAP) Práticas recomendadas para migrar aplicativos Java que usam a tecnologia JBoss EAP. eap
EAP 7 Práticas recomendadas para migrar aplicativos Java que usam a tecnologia JBoss EAP 7. eap7
Destinos suportados

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

Nome do destino Description Meta
Serviço de Aplicativo do Azure Práticas recomendadas para implantar um aplicativo no Serviço de Aplicativo do Azure. azure-appservice
Serviço de Kubernetes do Azure Práticas recomendadas para implantar um aplicativo no Serviço de Kubernetes do Azure. azure-aks
Aplicativos de Contêiner do Azure Práticas recomendadas para implantar um aplicativo nos Aplicativos de Contêiner do Azure. azure-container-apps
Sistemas operacionais com suporte

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

Nome do SO Description Sistema operacional
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 do recurso Description Capability
Transporte em contêineres Práticas recomendadas para a conteinerização de aplicativos. 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 arquivos ignorados

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 Description
--disable-telemetry Desabilita a telemetria.
--log-level Define o nível de log. O valor padrão é 4.
--no-cleanup Impede a limpeza de recursos temporários após a execução.

Exemplos

  • Analisar 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 aplicativo a um diretório de saída e relatório estático existente:

    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 uma origem específica para combinar tecnologias de destino, funcionalidades e sistema operacional:

    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 parâmetros --target, --capabilities e -os são combinados com uma condição AND, 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 detectar problemas de contêinerização.
    • A plataforma do sistema operacional Windows.
  • Analise um diretório de código-fonte e mantenha as linhas de contexto detectadas 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 como usar --context-lines-number 3:

    Captura de tela da diferença de trechos de código no relatório do appcat com o parâmetro context-lines-number.

  • Restringir o conteúdo do relatório sem snippets de código:

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

    Quando --code-snips-number -1 é definido, os snippets 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 snippets de código.

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

    Valores PrivacyMode:

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

appcat transform

Converte regras XML do Windup para YAML.

Parâmetros necessários

Parâmetro Description
--rules Converte regras XML em YAML.

Parâmetros globais

Parâmetro Description
--disable-telemetry Desabilita a telemetria
--log-level Define o nível de log. O valor padrão é 4.
--no-cleanup Impede a limpeza de recursos temporários após a execução.

Exemplos

O exemplo a seguir converte uma regra de XML da ferramenta Windup 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