Partilhar via


Azure Migrate aplicativo e avaliação de código para Java versão 7 (visualização)

Nota

Este artigo destina-se à próxima geração de aplicação Azure Migrate e avaliação de código para Java, versão 7.x. Esta versão está em prévia. Para a versão estável anterior, versão 6.x, consulte Azure Migrate application and code assessment for Java.

Este artigo mostra como usar o aplicativo Azure Migrate e a ferramenta de avaliação de código para Java para avaliar e reformular qualquer tipo de aplicativo Java. A ferramenta permite avaliar a preparação do aplicativo para replataforma e migração para o Azure. Essa ferramenta é oferecida como uma interface de linha de comando (CLI) e avalia binários de aplicativos Java e código-fonte para identificar oportunidades de replataforma e migração para o Azure. Ele ajuda a modernizar e reformular aplicativos Java de grande escala, identificando casos de uso comuns e padrões de código e propondo alterações recomendadas.

A ferramenta descobre o uso da tecnologia de aplicações por meio da análise estática de código, fornece estimativa de esforço e acelera a replataformação do código. Essa avaliação ajuda você a priorizar e mover aplicativos Java para o Azure. Com um conjunto de mecanismos e regras, a ferramenta pode descobrir e avaliar diferentes tecnologias, como Java 11, Java 17, Jakarta EE, Spring, Hibernate, Java Message Service (JMS) e muito mais. Em seguida, a ferramenta ajuda você a reformular o aplicativo Java para diferentes destinos do Azure - Serviço de Aplicativo do Azure, Serviço Kubernetes do Azure e Aplicativos de Contêiner do Azure - com regras específicas de replataforma do Azure.

A ferramenta é baseada em um conjunto de componentes do projeto Cloud Native Computing FoundationKonveyor, criado e liderado pela Red Hat.

Descrição geral

A ferramenta foi projetada para ajudar as organizações a modernizar seus aplicativos Java de uma forma que reduza custos e permita uma inovação mais rápida. A ferramenta usa técnicas avançadas de análise para entender a estrutura e as dependências de qualquer aplicativo Java e fornece orientação sobre como refatorar e migrar os aplicativos para o Azure.

Com ele, você pode executar as seguintes tarefas:

  • Descubra o uso da tecnologia: veja rapidamente quais tecnologias um aplicativo usa. A descoberta é útil se você tiver aplicativos herdados com pouca documentação e quiser saber quais tecnologias eles usam.
  • Avaliar o código para um destino específico: avalie um aplicativo para um destino específico do Azure. Verifique o esforço e as modificações que você precisa fazer para reformular seus aplicativos para o Azure.

Alvos suportados

A ferramenta contém regras para ajudá-lo a reformular seus aplicativos para que você possa implantar e usar diferentes serviços do Azure.

As regras usadas pelo aplicativo Azure Migrate e pela avaliação de código são agrupadas com base em um destino. Um destino é onde ou como a aplicação é executada, bem como as suas necessidades e expectativas gerais. Ao avaliar um aplicativo, você pode escolher vários destinos. A tabela a seguir descreve os destinos disponíveis:

Nome do destino Descrição Destino
Serviço de Aplicações do Azure Práticas recomendadas para implantar um aplicativo no Serviço de Aplicativo do Azure. azure-appservice
Serviço Kubernetes do Azure Práticas recomendadas para implantar um aplicativo no Serviço Kubernetes do Azure. azure-aks
Aplicações de Contentores do Azure Práticas recomendadas para implantar um aplicativo em Aplicativos de Contêiner do Azure. azure-container-apps
Preparação para a nuvem Práticas recomendadas gerais para preparar um aplicativo Cloud (Azure). cloud-readiness
Aplicações Linux Práticas recomendadas gerais para preparar um aplicativo Linux. linux
OpenJDK 11 Melhores práticas gerais para executar uma aplicação Java 8 com Java 11. openjdk11
OpenJDK 17 Melhores práticas gerais para executar uma aplicação Java 11 com Java 17. openjdk17
OpenJDK 21 Melhores práticas gerais para executar uma aplicação Java 17 com Java 21. openjdk21

Quando a ferramenta avalia a Preparação para a Nuvem e os serviços relacionados do Azure, também pode relatar informações úteis para o uso potencial de diferentes serviços do Azure. A lista seguinte mostra alguns dos serviços abrangidos:

  • Bases de Dados do Azure
  • Azure Service Bus (uma solução de mensageria na nuvem da Microsoft)
  • Armazenamento do Azure
  • Rede de Entrega de Conteúdos do Azure
  • Hubs de Eventos do Azure
  • Azure Key Vault
  • Azure Front Door (porta de entrada do Azure)

Transferir e instalar

Para usar a appcat CLI, você deve baixar o pacote específico para seu ambiente e ter as dependências necessárias em seu ambiente. A appcat CLI é executada em qualquer ambiente, como Windows, Linux ou Mac, usando hardware Intel, Arm ou Apple Silicon. Para o requisito JDK, recomenda-se que se use a versão da Microsoft do OpenJDK.

SO Arquitetura Link para Download Outros ficheiros
x64
Mac OS x64 Baixar SHA256 / sig
macOS x64 Baixar SHA256 / sig
Aplicações Linux x64 Baixar SHA256 / sig
AArch64
Mac OS AArch64 / ARM64 Baixar SHA256 / sig
macOS Silício da Apple Baixar SHA256 / sig
Aplicações Linux AArch64 / ARM64 Baixar SHA256 / sig

Pré-requisitos

Instalar o AppCAT

Para instalar o appcat, descarregue o ficheiro zip apropriado para a sua plataforma. Depois de baixar o arquivo, dependendo do seu sistema operacional, você deve encontrar um arquivo .tar.gz (Linux/macOS) ou .zip (Windows).

Extraia o binário do arquivo baixado. Você deve ver a seguinte estrutura de pastas:

/azure-migrate-appcat-for-java-cli-<OS>-<architecture>-<release-version>-preview/
├── appcat.exe (Windows) / appcat (Linux/macOS)
├── samples/
├── fernflower.jar
├── LICENSE
├── NOTICE.txt
├── maven.default.index
├── jdtls/
├── static-report/
├── rulesets/
├── readme.md
└── readme.html

Executar AppCAT

Para executar appcat a partir de qualquer local no seu terminal, extraia o arquivo para o local desejado. Em seguida, atualize a PATH variável de ambiente para incluir o diretório onde você extraiu o arquivo.

Nota

Quando o appcat binário é chamado, ele primeiro procura suas dependências na pasta executável especificada na PATH variável de ambiente. Se as dependências não forem encontradas, ele retornará ao diretório inicial do usuário - ~/.appcat no Linux/Mac ou %USERPROFILE%\.appcat no Windows.

Utilização

Subcomandos

AppCAT fornece dois subcomandos para uso:

  • analyze: Execute a análise do código-fonte no código-fonte de entrada ou em um binário.
  • transform: Converta regras XML de versões anteriores (6 e anteriores) para o formato YAML usado por esta versão.

Nota

Para usuários do macOS: Se você encontrar um erro informando Apple could not verify ao tentar executar o aplicativo, você pode resolver esse erro usando o seguinte comando:

xattr -d -r com.apple.quarantine /path/to/appcat_binary

Por exemplo:

xattr -d -r com.apple.quarantine $HOME/.appcat/appcat

Analisar subcomando

O analyze subcomando permite executar o código-fonte e a análise binária.

Para analisar o código-fonte do aplicativo, use o seguinte comando:

./appcat analyze --input=<path-to-source-code> --output=<path-to-output-directory> --target=azure-appservice,cloud-readiness --overwrite

O --input sinalizador deve apontar para um diretório de código-fonte ou um arquivo binário e --output deve apontar para um diretório para armazenar os resultados da análise.

Para obter mais informações sobre os sinalizadores de análise, use o seguinte comando:

./appcat analyze --help

Para verificar os destinos disponíveis para o AppCAT, use o seguinte comando:

./appcat analyze --list-targets

Este comando produz a seguinte saída:

available target technologies:
azure-aks
azure-appservice
azure-container-apps
cloud-readiness
linux
openjdk11
openjdk17
openjdk21

Analisando vários aplicativos

O AppCAT suporta análise de vários aplicativos na execução por comando. Você pode fornecer uma lista separada por vírgulas de caminhos de entrada para que o sinalizador analise --input vários aplicativos em um único comando. O diretório de saída e o relatório estático incluem os resultados da análise combinada para todos os aplicativos.

Para analisar vários aplicativos, use o seguinte comando:

./appcat analyze --input=<path-to-source-A>,<path-to-source-B>,<path-to-source-C> --output=<path-to-output-ABC> --target=<target-name>

O AppCAT também permite que você use --bulk a opção para adicionar incrementalmente mais análise de aplicativo a um diretório de saída existente e relatório estático. Ao usar a --bulk opção, você deve usá-la consistentemente em todas as execuções de comando que gravam na mesma saída.

Nota

Quando você fornece vários caminhos de entrada, --bulk é habilitado por padrão.

Para adicionar incrementalmente mais análise de aplicativo a um relatório estático existente, use o seguinte comando:

./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>

Subcomando Transformar

O transform subcomando permite converter as regras XML anteriores appcat usadas na versão 6.x no novo formato YAML usado por esta versão 7.x.

Para transformar regras, use o seguinte comando:

./appcat transform rules --input=<path-to-xml-rules> --output=<path-to-output-directory>

O --input sinalizador deve apontar para um arquivo ou diretório contendo regras XML, e o --output sinalizador deve apontar para o diretório de saída para as regras YAML convertidas.

Exemplos

Nota

Certifique-se de que as permissões de arquivo para scripts na pasta extraída estão definidas para permitir a execução.

No diretório de exemplos , você pode encontrar os seguintes scripts para executar diferentes tipos de análise:

  • run-assessment: fornece um relatório com avaliação de código e etapas para migrar o Airsonic para o Serviço de Aplicativo do Azure no Tomcat.
  • run-assessment-transform-rules: Converte regras XML de Windup em regras YAML compatíveis com analyzer-lsp.
  • run-assessment-custom-rules: fornece um relatório de avaliação de código usando regras personalizadas (transformar XML em YAML).
  • run-assessment-openjdk21: Gera um relatório com avaliação de código e etapas para migrar o Airsonic para o OpenJDK 21.
  • run-assessment-package-only: Produz um relatório através da avaliação de pacotes específicos.

Estes scripts destinam-se a ser utilizados com o projeto de exemplo Airsonic-Advanced - um streamer multimédia baseado na Web orientado pela comunidade que lhe permite aceder e partilhar a sua coleção de música.

Você pode clonar o repositório de aplicativos manualmente usando o seguinte comando:

git clone https://github.com/airsonic-advanced/airsonic-advanced.git

Após a clonagem, forneça o caminho para a pasta clonada ao executar os scripts de avaliação. Dependendo do seu sistema operacional, execute o script apropriado, conforme mostrado no exemplo a seguir:

Nota

Certifique-se de ter clonado o projeto Airsonic Advanced para um caminho local antes de executar os scripts.

./samples/run-assessment <path-to-airsonic-advanced>

Os relatórios são gerados e lançados automaticamente. Pode encontrar os relatórios em .. /samples/report-* (Linux/macOS) ou .. \samples\report-* (Windows).

Resumo da análise

A página de destino do relatório apresenta uma visão resumida de todos os aplicativos analisados. A partir daqui, você pode navegar até relatórios de aplicativos individuais para explorar descobertas detalhadas.

Captura de tela do relatório de resumo do appcat.

O botão Ask Copilot no canto superior direito redireciona você para a extensão GitHub Copilot App Modernization for Java no Visual Studio Code. Essa extensão fornece avaliação de aplicativos e correção de código como seus principais recursos para migrar aplicativos Java para o Azure - alimentado pelos recursos de IA do AppCAT e do GitHub Copilot.

Relatório de avaliação

O relatório de avaliação fornece uma lista de problemas categorizada de vários aspetos da prontidão do Azure, nativo da nuvem e modernização Java que você precisa abordar para migrar com êxito o aplicativo para o Azure.

Cada Problema é categorizado por gravidade - Obrigatório, Opcional ou Potencial - e inclui o número de linhas de código afetadas.

As guias Dependências e Tecnologias exibem as bibliotecas e tecnologias usadas no aplicativo.

Captura de ecrã do relatório de avaliação AppCAT.

Informações pormenorizadas sobre uma questão específica

Para cada problema, você pode obter mais informações (o detalhe do problema, o conteúdo da regra e assim por diante) apenas selecionando-o. Você também obtém a lista de todos os arquivos afetados por esse problema.

Captura de tela do relatório de detalhes do problema do AppCAT.

Em seguida, para cada arquivo ou classe afetada pelo problema, você pode ir para o código-fonte para destacar a linha de código que criou o problema.

Captura de tela do relatório de código de problema do AppCAT.

Notas de versão

7.6.0.7

Esta versão contém as seguintes correções e melhorias.

  • Suporte para analisar aplicativos Spring baseados em Gradle.
  • Apoio na análise de projetos Open Liberty.
  • Mostrar o progresso da avaliação exibindo o número de regras processadas durante a avaliação.
  • Maven removido dos pré-requisitos.
  • Substituído airsonic.war por airsonic-advanced como o aplicativo de exemplo nos artefatos liberados.

7.6.0.6

Esta versão contém as seguintes correções e melhorias.

  • Um arquivo .appcat-ignore padrão agora está incluído no pacote de lançamento por padrão. Esse arquivo faz com que a ferramenta exclua pastas ou caminhos especificados que não precisam ser analisados.
  • Corrigido o problema de dependências ausentes no relatório ao usar o modo full (especificado por --mode).
  • O escopo da análise é restringido a destinos suportados pelo AppCAT quando nenhum destino é especificado.
  • Linhas de comentário ignoradas durante a análise.
  • Corrigida a localização incorreta das regras XML.

7.6.0.5

Esta versão contém as seguintes correções e melhorias.

  • O --input sinalizador agora aceita vários valores, permitindo que você analise vários aplicativos em uma única execução de comando.
  • O relatório estático categoriza sua lista de problemas para melhor legibilidade.
  • Os usuários agora podem instalar o AppCAT em diretórios diferentes do diretório inicial do usuário.
  • Corrigido um problema em que a execução de analyze com ambos --bulk e --skip-static-report não conseguia gerar vários ficheiros de saída.
  • Resolvida uma falha na análise com --bulk e --rules se nenhum provedor Java foi lançado.
  • Corrigido um problema em que a análise falhava se um pacote especificado não fosse encontrado ao usar o --packages sinalizador.
  • O --exclude-paths sinalizador foi preterido. Para excluir ficheiros ou diretórios, utilize um ficheiro .appcat-ignore - que suporta padrões glob - colocado no diretório de entrada ou no diretório de instalação.

7.6.0.4

Esta versão contém as seguintes correções e melhorias.

  • Suporta a recolha de telemetria. Use o sinalizador para desativar a --disable-telemetry telemetria.
  • Refatora o formato de comando da CLI para torná-lo mais claro.
    • Atualiza o --source indicador, alterando de --source <source1> --source <source2> ... para --source <source1>,<source2>,...
    • Atualiza o --target indicador, alterando de --target <target1> --target <target2> ... para --target <target1>,<target2>,...
    • Atualiza o --rules indicador, alterando de --rules <rule1> --rules <rule2> ... para --rules <rule1>,<rule2>,...
    • Atualiza o --maven-settings sinalizador para --custom-maven-settings
    • Atualiza o --limit-code-snips sinalizador para --code-snips-number
    • Remova a sinalização --json-output, use a sinalização --output-format, escolha o formato de saída: 'yaml' ou 'json'. (yaml padrão)
    • Remove os --providersinalizadores , --override-provider-settings, --list-providerse --dependency-folders
  • Um novo --exclude-paths sinalizador: especifica caminhos que devem ser ignorados na análise. Use uma lista separada por vírgulas para vários valores: --exclude-paths <path1>,<path2>,.... O valor predefinido é [].
  • Um novo --packages sinalizador: especifica os pacotes de classe de aplicativo a serem avaliados. Use uma lista separada por vírgulas para vários valores: --packages <package1>,<package2>,.... O valor predefinido é [].
  • Uma nova --dry-run flag: só verifica se as flags são válidas sem realmente executar a análise. O valor predefinido é false.
  • Remove azure-spring-apps do appcat --list-targets.

7.6.0.3

Esta versão contém as seguintes correções e melhorias.

  • Novo --limit-code-snips indicador: controla os limites de trechos de código durante a avaliação da regra (0=ilimitado, -1=desactivar os trechos).
  • Corrigidas falhas de ficheiros de dependência ausentes no modo de análise em massa: a ferramenta já não interrompe durante a análise em massa para projetos não-Java ou projetos Java usando --mode=source-only.

7.6.0.2

Esta versão contém as seguintes correções.

  • java-removals-00150 regra agora está a ser acionada corretamente.

7.6.0.1

Esta versão contém as seguintes correções e melhorias.

  • --analyze-known-libraries flag: Agora funciona no Windows.
  • Limpeza de diretórios: os diretórios extras criados durante a análise no Windows agora são limpos automaticamente.
  • --json-output indicador: Agora operacional.
  • Erro de análise de regras: o erro unable to parse all the rules for ruleset foi resolvido.
  • Descrições da guia Insights: descrições de regras ausentes agora estão presentes.
  • Dependência de conexão com a Internet: a análise não falha mais sem uma conexão com a Internet.
  • --context-lines flag: Agora se comporta como esperado quando definido como 0.
  • Removido o requisito Python para executar a ferramenta.

7.6.0.0

Esta versão é baseada em um conjunto diferente de componentes do projeto Konveyor.

Atualizações gerais

6.3.9.0

Esta versão contém as seguintes correções e inclui um conjunto de novas regras.

Atualizações gerais

  • Alterações integradas a partir do repositório Windup upstream (6.3.9.Versão Final).
  • Resolvidos links quebrados em descrições de regras e texto de ajuda.

Regras

  • Fila de Mensagens do Azure: novas regras atualizadas e adicionadas para azure-message-queue-rabbitmq e azure-message-queue-amqp.
  • Barramento de Serviço do Azure: foi introduzida uma regra de detecção para o Barramento de Serviço do Azure.
  • MySQL e PostgreSQL: regras refinadas de deteção de dependência.
  • Azure-AWS Rules: regras existentes melhoradas e aprimoradas.
  • S3 Spring Starter: adicionada uma regra de deteção para o S3 Spring Starter.
  • RabbitMQ Spring JMS: adicionada uma regra de deteção para RabbitMQ Spring JMS.
  • Regras de registo: regras de registo atualizadas e aperfeiçoadas.
  • Regra de armazenamento local: atualizou e refinou a regra de armazenamento local.
  • Regra do Sistema de Arquivos do Azure: atualizada e refinada a regra do Sistema de Arquivos do Azure.

Bibliotecas

  • Bibliotecas atualizadas para resolver vulnerabilidades de segurança.

6.3.0.9

Esta versão contém as seguintes correções e inclui um conjunto de novas regras.

  • Resolvido um problema com a regra localhost-java-00001.
  • Introduziu novas regras para identificar tecnologias como AWS S3, AWS SQS, Alibaba Cloud OSS, Alibaba Cloud SMS, Alibaba Scheduler X, Alibaba Cloud Seata e Alibaba Rocket MQ.
  • Atualizado o azure-file-system-02000 para agora suportar extensões de arquivo XML.
  • Atualizou várias bibliotecas para resolver vulnerabilidades de segurança.

6.3.0.8

Anteriormente, um conjunto de objetivos era ativado por padrão, tornando difícil para certos clientes analisar grandes aplicativos com muitos problemas relacionados a questões menos críticas. Para reduzir o ruído nos relatórios, os usuários agora devem especificar vários destinos, com o parâmetro --target, ao executar appcat, dando-lhes a opção de selecionar apenas os alvos que importam.

6.3.0.7

Versão GA (Geralmente Disponível) do aplicativo Azure Migrate e avaliação de código.

Problemas conhecidos

7.6.0.7

  • Questões de regras:
    • As azure-system-config-01000 regras não estão sendo acionadas.
    • A azure-password-01000 regra deteta apenas uma violação, mesmo quando existem várias violações no mesmo arquivo.
  • Um erro no canal Watcher Error no Windows: Windows system assumed buffer larger than it is, events have likely been missed. Esta mensagem de erro aparece na linha de comando durante trabalhos de longa execução no Windows.

7.6.0.6

  • Questões de regras:
    • As azure-system-config-01000 regras não estão sendo acionadas.
    • A azure-password-01000 regra deteta apenas uma violação, mesmo quando existem várias violações no mesmo arquivo.
  • Um erro no canal Watcher Error no Windows: Windows system assumed buffer larger than it is, events have likely been missed. Esta mensagem de erro aparece na linha de comando durante trabalhos de longa execução no Windows.

7.6.0.5

  • Questões de regras:
    • As azure-system-config-01000 regras não estão sendo acionadas.
    • A azure-password-01000 regra deteta apenas uma violação, mesmo quando existem várias violações no mesmo arquivo.
  • Um erro no canal Watcher Error no Windows: Windows system assumed buffer larger than it is, events have likely been missed. Esta mensagem de erro aparece na linha de comando durante trabalhos de longa execução no Windows.

7.6.0.4

  • Questões de regras:
    • As azure-system-config-01000 regras não estão sendo acionadas.
    • A azure-password-01000 regra deteta apenas uma violação, mesmo quando existem várias violações no mesmo arquivo.
  • Um erro no canal Watcher Error no Windows: Windows system assumed buffer larger than it is, events have likely been missed. Esta mensagem de erro aparece na linha de comando durante trabalhos de longa execução no Windows.

7.6.0.3

  • O sinalizador --overrideProviderSettings não é suportado.
  • Questões de regras:
    • azure-system-config-01000, http-session-01000 as regras não estão sendo acionadas.
    • A regra FileSystem - Java IO não está a ser acionada.
  • Analisar arquivos WAR no Windows produz o seguinte erro: Failed to Move Decompiled File. Ocorre um erro ao analisar arquivos WAR no Windows, que é responsável por alguns problemas redundantes criados no sistema operacional Windows.
  • Erro no canal de erros do Watcher no Windows: Windows system assumed buffer larger than it is, events have likely been missed. Esta mensagem de erro aparece na linha de comando durante trabalhos de longa execução no Windows.
  • + CtrlC não consegue parar a análise em curso. Para contornar o problema, encerre manualmente o processo terminando explicitamente o processo.
  • Em relatórios de análise binária, o título do trecho de código mostra um caminho de arquivo incorreto ou inexistente.

7.6.0.2

  • O sinalizador --overrideProviderSettings não é suportado.
  • Questões de regras:
    • azure-system-config-01000, http-session-01000 as regras não estão sendo acionadas.
    • A regra FileSystem - Java IO não está a ser acionada.
  • Analisar arquivos WAR no Windows produz o seguinte erro: Failed to Move Decompiled File. Ocorre um erro ao analisar arquivos WAR no Windows, que é responsável por alguns problemas redundantes criados no sistema operacional Windows.
  • Erro no canal de erros do Watcher no Windows: Windows system assumed buffer larger than it is, events have likely been missed. Esta mensagem de erro aparece na linha de comando durante trabalhos de longa execução no Windows.
  • + CtrlC não consegue parar a análise em curso. Para contornar o problema, encerre manualmente o processo terminando explicitamente o processo.
  • Em relatórios de análise binária, o título do trecho de código mostra um caminho de arquivo incorreto ou inexistente.

7.6.0.1

  • O sinalizador --overrideProviderSettings não é suportado.
  • Questões de regras:
    • azure-system-config-01000, http-session-01000, java-removals-00150 as regras não estão sendo acionadas.
    • A regra FileSystem - Java IO não está a ser acionada.
  • Analisar arquivos WAR no Windows produz o seguinte erro: Failed to Move Decompiled File. Ocorre um erro ao analisar arquivos WAR no Windows, que é responsável por alguns problemas redundantes criados no sistema operacional Windows.
  • Erro no canal de erros do Watcher no Windows: Windows system assumed buffer larger than it is, events have likely been missed. Esta mensagem de erro aparece na linha de comando durante trabalhos de longa execução no Windows.
  • + CtrlC não consegue parar a análise em curso. Para contornar o problema, encerre manualmente o processo terminando explicitamente o processo.
  • Em relatórios de análise binária, o título do trecho de código mostra um caminho de arquivo incorreto ou inexistente.

7.6.0.0

  • O sinalizador --analyze-known-libraries não está funcionando no Windows.
  • No Windows, as seguintes pastas extras são geradas durante o processo de análise, mas não são removidas automaticamente após a conclusão. Talvez você queira remover essas pastas extras após a conclusão da análise.
    • .metadados
    • org.eclipse.osgi
    • org.eclipse.equinox.app
    • org.eclipse.core.runtime
    • org.eclipse.equinox.launcher
  • O sinalizador --overrideProviderSettings não é suportado.
  • O sinalizador --json-output não é suportado. Em uma versão futura, ele gera saídas JSON para os arquivos output.yaml e dependency.yaml .
  • Questões de regras:
    • azure-system-config-01000, http-session-01000, java-removals-00150 as regras não estão sendo acionadas.
    • A regra FileSystem - Java IO não está a ser acionada.
    • Erro unable to parse all the rules for ruleset ao executar a análise. Este erro ocorre durante a análise quando a ferramenta não consegue analisar todas as regras no conjunto de regras.
  • Analisar arquivos WAR no Windows produz o seguinte erro: Failed to Move Decompiled File. Ocorre um erro ao analisar arquivos WAR no Windows, que é responsável por alguns problemas redundantes criados no sistema operacional Windows.
  • Faltam descrições para algumas regras na guia Insights . Algumas regras de tag não têm descrições, levando a que títulos em branco apareçam na guia Informações do relatório.
  • Erro no canal de erro do observador no Windows: Windows system assumed buffer larger than it is, events have likely been missed. Esta mensagem de erro aparece na linha de comando durante trabalhos de longa execução no Windows.
  • Esta versão requer uma conexão ativa com a Internet para análise de dependência.
  • + CtrlC não consegue parar a análise em curso. Para contornar o problema, encerre manualmente o processo terminando explicitamente o processo.
  • Quando o sinalizador --context-lines é definido como um número 0, ele não funciona como esperado. Esse sinalizador permite que o usuário limite quanto do código-fonte deve aparecer no relatório. A configuração com um valor 0 pode não funcionar conforme o esperado.

Licença

O Azure Migrate application and code assessment for Java é uma ferramenta gratuita baseada em código aberto.

Recolha de dados

O AppCAT coleta dados de telemetria por padrão. A Microsoft agrega dados coletados para identificar padrões de uso, identificar problemas comuns e melhorar a experiência da CLI do AppCAT. A CLI do Microsoft AppCAT não coleta dados privados ou pessoais. Por exemplo, os dados de uso ajudam a identificar problemas como comandos com baixa taxa de sucesso. Estas informações ajudam-nos a priorizar o nosso trabalho.

Embora apreciemos os insights que esses dados fornecem, também entendemos que nem todos querem enviar dados de uso. Você pode desabilitar a coleta de dados usando o appcat analyze --disable-telemetry comando. Para mais informações, consulte a nossa declaração de privacidade .