Como o Amazon Q Developer transforma o código para atualizações da linguagem Java
Para transformar o código, o Amazon Q Developer gera um plano de transformação usado para atualizar a versão da linguagem de código do projeto. Depois de transformar seu código, ele fornece um resumo da transformação e uma comparação de arquivos para você revisar as alterações antes de aceitá-las. Como o Amazon Q Developer faz as alterações mínimas necessárias para tornar o código atualizado compatível com o JDK de destino, é necessária uma transformação adicional para atualizar as bibliotecas e dependências do projeto. As seções a seguir fornecem mais detalhes sobre como o Amazon Q realiza a transformação.
Criar seu código e criar um plano de transformação
Para começar a transformar seu código, o Amazon Q cria seu projeto localmente e gera um artefato de construção que contém seu código-fonte, dependências do projeto e logs de criação.
Depois de gerar o artefato de construção, o Amazon Q cria seu código em um ambiente de compilação seguro e cria um plano de transformação, que é personalizado para o projeto ou módulo que você está atualizando. O plano de transformação descreve as mudanças específicas que o Amazon Q tentará fazer, incluindo novas versões de dependência, grandes alterações no código e sugestões de substituições para o código obsoleto. Essas alterações são baseadas na compilação preliminar do seu código e podem mudar durante a transformação.
Transformar o código
Para transformar seu código, o Amazon Q tenta atualizá-lo para a versão Java de destino com base nas alterações propostas no plano de transformação. À medida que faz alterações, ele reconstrói e executa testes de unidade existentes em seu código-fonte para corrigir iterativamente quaisquer erros encontrados. A atualização do JDK pode ser feita da seguinte versão do código-fonte para a versão de destino:
-
Java 8 para 17
-
Java 8 para 21
-
Java 11 para 17
-
Java 11 para 21
-
Java 17 para 21
O Amazon Q faz as alterações mínimas necessárias para tornar seu código compatível com a versão Java de destino. Depois da atualização bem-sucedida para o Java 17 ou 21. Após o Amazon Q realizar uma atualização mínima do JDK, você poderá iniciar uma transformação separada para atualizar todas as dependências de terceiros. Como alternativa, é possível especificar dependências de terceiros e suas versões em um arquivo YAML para atualizar somente essas dependências durante a transformação de atualização da biblioteca.
O Amazon Q tenta fazer as seguintes alterações ao atualizar seu código:
-
Atualizar componentes de código obsoletos conforme as recomendações da versão Java de destino.
-
Atualizar bibliotecas e estruturas populares para uma versão compatível com a versão Java de destino. Isso inclui atualizar as seguintes bibliotecas e estruturas para as versões principais mais recentes disponíveis:
-
Apache Commons E/S
-
Apache HttpClient
-
fips do bc-fips
-
Pepino-JVM
-
Hibernar
-
jackson-annotations
-
JakartaEE
-
Javax
-
javax.servlet
-
jaxb-api
-
jaxb-impl
-
jaxen
-
jcl-over-slf4j
-
JSON simples
-
jsr305
-
junit
-
junit-jupiter-api
-
Log4j
-
Micronaut
-
Mockito
-
mockito-core
-
Okio
-
PowerMockito
-
Quarkus
-
slf4j
-
slf4j-api
-
Bota de primavera
-
Framework da
-
Spring Security
-
Swagger
-
testando
-
nota
Não desligue nem feche sua máquina local durante a transformação do código porque a compilação do lado do cliente requer uma conexão de rede estável.
Compilar código no ambiente local
Durante uma transformação, o Amazon Q realiza compilações de verificação em seu ambiente local. O Amazon Q transforma seu código no lado do servidor em várias etapas. Após cada etapa, o Amazon Q envia o código para seu ambiente local para compilar e testar as alterações feitas. O código é então enviado de volta para o lado do servidor para continuar a transformação.
A compilação no ambiente local ajuda a verificar o código transformado, permitindo que o Amazon Q execute testes que exigem acesso a recursos privados. Para minimizar os riscos de segurança associados à compilação de código gerado por IA no ambiente local, o Amazon Q revisa e atualiza o código que gera para tratar de questões de segurança.
Revisando o resumo da transformação e aceitando as alterações
Depois que a transformação for concluída, o Amazon Q fornece um resumo da transformação com detalhes sobre as alterações feitas, incluindo o status da versão final, que indica se todo o seu projeto foi atualizado. Você também pode ver um resumo do log de compilação para entender quaisquer problemas que impediram o Amazon Q de criar seu código na versão atualizada.
Além disso, o resumo da transformação inclui as diferenças entre as mudanças propostas no plano de transformação e as alterações que a Amazon Q fez para atualizar seu código e quaisquer alterações adicionais que não estavam no plano original.
Depois de revisar o resumo da transformação, você pode visualizar as alterações que o Amazon Q está propondo em uma visualização de comparação de arquivos. Qualquer alteração de código sugerida pela Amazon Q não afetará seus arquivos de projeto atuais até que você aceite as alterações. O código transformado está disponível até 30 dias após a conclusão da transformação.
Concluindo transformações parcialmente bem-sucedidas
Dependendo da complexidade e das especificidades da sua base de código, pode haver instâncias em que a transformação seja parcialmente bem-sucedida. Isso significa que o Amazon Q conseguiu transformar somente determinados arquivos ou áreas de código em seu projeto. Nesse caso, você precisa atualizar manualmente o código restante para que seu projeto possa ser compilado na versão atualizada do idioma.
Para ajudar a transformar o resto do seu código, você pode usar o Amazon Q chat no IDE. Você pode pedir à Amazon Q que revise os arquivos parcialmente atualizados e forneça um novo código para resolver problemas, como erros de compilação. Você também pode usar atributos como /dev e @workspace para incluir mais do seu projeto como contexto e obter sugestões para vários arquivos ao mesmo tempo.