

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Atualizar versões do Java com o Amazon Q Developer
<a name="code-transformation"></a>

O Amazon Q Developer pode atualizar aplicações Java para versões de linguagem mais recentes no ambiente de desenvolvimento integrado (IDE). As alterações que o Amazon Q pode fazer para atualizar o código incluem atualizar APIs e componentes de código obsoletos, bem como atualizar bibliotecas, estruturas e outras dependências no código. 

Para transformar o código, o Amazon Q primeiro o compila na versão da linguagem de origem e verifica se ele tem as informações necessárias para realizar a transformação. Após o Amazon Q transformar o código com sucesso, é possível verificar e aceitar as alterações no IDE. 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. Para obter mais informações sobre como o Amazon Q transforma seu código, consulte [Como o Amazon Q Developer transforma o código para atualizações da linguagem Java](how-CT-works.md).

**Topics**
+ [Atualizações e IDEs de Java compatíveis](#supported-languages-IDEs)
+ [Etapa 1: pré-requisitos](#java-upgrade-prerequisites)
+ [Etapa 2: configurar o projeto](#configure-project)
+ [Etapa 3: criar um arquivo de atualização de dependência (opcional)](#create-dependency-upgrade-file)
+ [Etapa 4: transformar o código](#transform-code-java)
+ [Como o Amazon Q Developer transforma o código para atualizações da linguagem Java](how-CT-works.md)

## Atualizações e IDEs de Java compatíveis
<a name="supported-languages-IDEs"></a>

Atualmente, o Amazon Q é compatível com as versões Java abaixo de código-fonte e de destino para transformações. A transformação do código para a mesma versão Java inclui a atualização de bibliotecas e outras dependências na versão do código-fonte.


**Atualizações de Java compatíveis**  

| Versão do código-fonte | Versões de destino compatíveis | 
| --- | --- | 
| Java 8  | Java 17 e Java 21 | 
| Java 11 | Java 17 e Java 21 | 
| Java 17 | Java 17 e Java 21  | 
| Java 21 | Java21  | 

O Amazon Q é compatível com as atualizações de Java nos seguintes IDEs:
+ Módulos em IDEs do JetBrains
+ Projetos e espaços de trabalho no Visual Studio Code

## Etapa 1: pré-requisitos
<a name="java-upgrade-prerequisites"></a>

Antes de continuar, certifique-se de que você concluiu as etapas em [Configurar o Amazon Q no IDE](q-in-IDE-setup.md).

Antes de começar, certifique-se de que os seguintes pré-requisitos são atendidos: 
+ Seu projeto foi escrito em uma [versão Java compatível](#supported-languages-IDEs) e foi criado no Maven.
+ Seu projeto foi compilado com sucesso com o Maven em seu IDE. Atualmente, o Maven 3.8 ou posterior é compatível. 
+ O JDK de origem do seu projeto está disponível localmente e é a versão do seu código-fonte. Por exemplo, se você estiver transformando o código Java 8, sua instalação local do JDK deverá ser o JDK 8.
+ Seu projeto é construído em 55 minutos ou menos. 
+ Seu projeto está configurado corretamente e a versão correta do JDK foi especificada. Para obter mais informações, consulte [Etapa 2: configurar o projeto](#configure-project).
+ Seu projeto não exige acesso a recursos em sua rede privada, incluindo uma nuvem privada virtual (VPC) ou uma rede on-premises. Por exemplo, se seu projeto contiver testes de unidade que se conectam a um banco de dados em sua rede, a transformação falhará.
+ Seu projeto não usa plug-ins que empacotam linguagens diferentes de Java em seu projeto Java. Por exemplo, se seu projeto usa o [plug-in frontend-maven](https://github.com/eirslett/frontend-maven-plugin) para executar código front-end além do JavaScript código-fonte Java, a transformação falhará.
+ Sua rede local permite uploads para buckets do Amazon S3 que o Amazon Q usa para transformar seu código. Para obter mais informações, consulte [Permitir acesso aos buckets do Amazon S3 em](firewall.md#data-perimeters) perímetros de dados.
+ Seu aplicativo usa somente UTF-8 caracteres. Se seu aplicativo usar caracteres que não UTF-8 sejam caracteres, o Amazon Q ainda tentará transformar seu código. 

## Etapa 2: configurar o projeto
<a name="configure-project"></a>

Para configurar seu projeto, use as informações a seguir para o IDE que você está usando.

### Configurar um projeto no JetBrains
<a name="configure-jetbrains"></a>

Para configurar seu projeto em JetBrains, talvez seja necessário especificar as seguintes configurações de projeto e módulo. 

Se seus módulos usam o mesmo JDK e o mesmo nível de linguagem do seu projeto, você não precisa atualizar as configurações do módulo.
+ SDK do projeto: o JDK usado para compilar seu projeto. 
+ Nível de linguagem do projeto: a versão do Java usada em seu projeto.
+ SDK do módulo: o JDK usado para compilar seu módulo. 
+ Nível de idioma do módulo: a versão do Java usada em seu módulo. 
+ Maven Runner JRE: o JDK com o qual você constrói seu módulo. 

**Atualizar as configurações do projeto e do módulo**

Para atualizar as configurações de SDK e de nível de idioma para o projeto ou módulo, siga as etapas a seguir:

1. No seu JetBrains IDE, escolha **Arquivo** e, em seguida, **Estrutura do projeto**. 

1. A janela Project Structure é aberta. Em **Configurações do projeto**, escolha **Módulos**. 

   1. Para atualizar o JDK do seu projeto, escolha na lista suspensa ao lado do **SDK**. 

   1. Para atualizar o idioma do seu projeto, escolha no menu suspenso ao lado do nível do **idioma**. 

1. Em **Configurações do projeto**, escolha **Módulos**. 

   1. Para atualizar seu módulo JDK, escolha na lista suspensa ao lado do **SDK**. 

   1. Para atualizar o idioma do seu módulo, escolha no menu suspenso ao lado do nível do **idioma**.

Para obter mais informações, consulte [Configurações da estrutura do projeto](https://www.jetbrains.com/help/idea/project-settings-and-structure.html) e [Configurações da estrutura do módulo](https://www.jetbrains.com/help/idea/configure-modules.html) na documentação do JetBrains.

**Atualizar as configurações do Maven**

Para atualizar o JRE do Maven Runner, siga as etapas a seguir:

1. No IDE JetBrains, selecione o ícone de engrenagem e, em seguida, escolha **Configurações** no menu que é exibido. 

1. Na janela **Configurações**, escolha **Construção, Execução, Implantação** depois **Ferramentas de Construção**, depois **Maven** e depois **Executor**.

1. No campo JRE, escolha o JDK usado para criar o módulo que você está transformando.

### Configurar um projeto no VS Code
<a name="configure-vsc"></a>

Para configurar seu projeto em VS Code, seu projeto deve conter o seguinte: 
+ O arquivo `pom.xml` na pasta do projeto
+ O arquivo `.java` no seu diretório de projeto

Se seu projeto contiver um Maven wrapper executável (`mvnw` para macOS ou `mvnw.cmd` para Windows), verifique se ele está na raiz do seu projeto. O Amazon Q usará o wrapper e nenhuma outra configuração Maven será necessária.

Se você não estiver usando um Maven wrapper, instale Maven. Para obter mais informações, consulte [Instalação do Apache Maven](https://maven.apache.org/install.html) na documentação do Apache Maven.

Depois de instalar Maven, adicione-o à sua `PATH` variável. Para obter mais informações, consulte [Como faço para adicionar o Maven ao meu `PATH`?](troubleshooting-code-transformation.md#add-maven-to-path) Sua `runtime` variável Java também deve estar apontando para um JDK e não para um JRE. Para confirmar se sua configuração está correta, execute `mvn -v`. A saída deve mostrar sua Maven versão e a `runtime` variável apontando para o caminho para seu JDK.

## Etapa 3: criar um arquivo de atualização de dependência (opcional)
<a name="create-dependency-upgrade-file"></a>

Você pode fornecer ao Amazon Q um *arquivo de atualização de dependência*, um arquivo YAML que lista as dependências do seu projeto e as versões para as quais atualizar durante uma transformação. Ao fornecer um arquivo de atualização de dependências, você poderá especificar dependências de terceiros e primárias que o Amazon Q talvez não saiba que precisam ser atualizadas.

As dependências primárias se referem às bibliotecas, plug-ins e estruturas que sua organização mantém e estão disponíveis somente localmente ou na rede privada da sua organização. O Amazon Q é capaz de acessar suas dependências primárias ao realizar compilações em seu ambiente local. Para obter mais informações, consulte [Compilar código no ambiente local](how-CT-works.md#java-local-builds). Dependências de terceiros são dependências disponíveis publicamente ou de código aberto que não são exclusivas da sua organização.

Você pode especificar dependências primárias que deseja atualizar em um arquivo YAML, e o Amazon Q as atualiza durante a atualização do JDK (por exemplo, do Java 8 para o 17). É possível iniciar uma transformação separada (do 17 para o 17 ou do 21 para 21) após a atualização inicial do JDK para atualizar dependências de terceiros.

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 solicitará que você forneça um arquivo de atualização de dependência durante a transformação. Se você quiser fornecer um, primeiro verifique se configurou o arquivo corretamente. Os seguintes campos são necessários no arquivo YAML:
+ name: o nome do arquivo de atualização de dependência.
+ description (opcional): uma descrição do arquivo de atualização da dependência e para qual transformação.
+ dependencyManagement: contém a lista de dependências e plug-ins a serem atualizados.
+ dependencies: contém o nome e a versão das bibliotecas a serem atualizadas.
+ plugins: contém os nomes e as versões dos plug-ins a serem atualizados.
+ identifier: o nome da biblioteca, plug-in ou outra dependência.
+ targetVersion: a versão da dependência para a qual atualizar.
+ versionProperty (opcional): a versão da dependência que você está definindo, conforme definida com a tag `properties` no arquivo `pom.xml` da sua aplicação.
+ originType: se a dependência é primária ou de terceiros, especificada por FIRST\_PARTY ou THIRD\_PARTY.

Veja a seguir um exemplo de um arquivo YAML de atualização de dependência e a configuração necessária para análise do Amazon Q:

```
name: dependency-upgrade
  
description: "Custom dependency version management for Java migration from JDK 8/11/17 to JDK 17/21"
  
  
dependencyManagement:
  
  dependencies:
  
    - identifier: "com.example:library1"
  
      targetVersion: "2.1.0"
  
      versionProperty: "library1.version"  # Optional
  
      originType: "FIRST_PARTY"   
  
    - identifier: "com.example:library2"
  
      targetVersion: "3.0.0"
  
      originType: "THIRD_PARTY"
  
  plugins:
  
    - identifier: "com.example.plugin"
  
      targetVersion: "1.2.0"
  
      versionProperty: "plugin.version"  # Optional
            
      originType: "THIRD_PARTY"
```

## Etapa 4: transformar o código
<a name="transform-code-java"></a>

Para testar a configuração do seu IDE, baixe e descompacte o projeto de amostra e conclua as etapas a seguir para seu IDE. Se você conseguir visualizar as alterações propostas e o resumo da transformação, estará pronto para transformar seu próprio projeto de código. Se a transformação falhar, o IDE não está configurado corretamente. Para resolver problemas de configuração, revise [Etapa 2: configurar o projeto](#configure-project) e [Solução de problemas](troubleshooting-code-transformation.md).

**nota**  
Não desligue, feche ou coloque sua máquina local em modo de espera durante a transformação do código. As compilações inicial e de validação usam o ambiente do lado do cliente, o que requer uma conexão de rede estável. 

Conclua estas etapas para atualizar a versão da linguagem de código do projeto ou módulo de código.

------
#### [ JetBrains ]

1. Abra o módulo no qual você deseja atualizar em JetBrains. Certifique-se de ter construído seu projeto com sucesso no IDE. 

1. Escolha o logotipo da Amazon Q e peça à Amazon Q que transforme seu aplicativo no painel de bate-papo que se abre.

1. Um pop-up **Transforme seu aplicativo** é exibido. Escolha o projeto que você deseja atualizar na lista suspensa e, em seguida, escolha **Transformar**. 

1. O Amazon Q solicita que você forneça um arquivo de dependência de atualização. Se você configurou um YAML com as dependências e a versão para a qual deseja atualizar, adicione seu arquivo. O Amazon Q validará o arquivo para garantir que ele esteja configurado corretamente. Se ocorrer um erro, revise o formato e os campos necessários descritos em [Etapa 3: criar um arquivo de atualização de dependência (opcional)](#create-dependency-upgrade-file).

1. O Amazon Q inicia a transformação. Você pode ver o progresso na guia **Detalhes da transformação**. 

1. Depois que a transformação for concluída, você poderá verificar o código atualizado antes de atualizar seu projeto. Para ver o novo código, vá até a guia **Detalhes da transformação** e escolha **Exibir diferença**. Na janela **Aplicar patch** exibida, escolha um arquivo para abrir uma visualização de diferenças com seu código-fonte e o código atualizado. 

1. Para aceitar as alterações feitas pelo Amazon Q, escolha **Exibir diferença** para abrir a janela **Aplicar patch**. Selecione todos os arquivos atualizados e escolha **OK** para atualizar seu projeto no local. 

1. Para obter detalhes sobre como seu código foi atualizado e sugerir as próximas etapas, na guia **Detalhes da transformação**, escolha **Exibir resumo da transformação**. 

------
#### [ Visual Studio Code ]

1. Abra o projeto ou o espaço de trabalho no VS Code que você deseja atualizar. Certifique-se de que você construiu o projeto com êxito no IDE. 

1. Escolha o logotipo da Amazon Q e peça à Amazon Q que transforme seu aplicativo no painel de bate-papo que se abre.

1. Escolha o projeto que você deseja atualizar na barra de pesquisa na parte superior do IDE. 

1. Se o Amazon Q não conseguir encontrar a versão do seu código-fonte, ele solicitará que você escolha a versão do seu código. Escolha a versão em que seu código-fonte está escrito e, em seguida, escolha **Transformar** no pop-up para continuar. 

1. Caso seja solicitado, insira o caminho `JAVA_HOME` para o JDK. Para obter mais informações, consulte [Configurar seu projeto VS Code](#configure-vsc). 

1. O Amazon Q solicita que você forneça um arquivo de dependência de atualização. Se você configurou um YAML com as dependências e a versão para a qual deseja atualizar, adicione seu arquivo. O Amazon Q validará o arquivo para garantir que ele esteja configurado corretamente. Se ocorrer um erro, revise o formato e os campos necessários descritos em [Etapa 3: criar um arquivo de atualização de dependência (opcional)](#create-dependency-upgrade-file).

1. O Amazon Q inicia a transformação. Você pode ver o progresso na guia **Hub de transformação**. 

1. Depois que a transformação for concluída, a guia **Alterações propostas** será aberta. Para verificar o código atualizado antes de atualizar seu projeto, escolha **Baixar as alterações propostas**. Escolha um arquivo para abrir uma visualização de diferenças com seu código-fonte e código atualizado. 

1. Para aceitar as alterações feitas pela Amazon Q, acesse a guia **Alterações propostas** e escolha **Aceitar**. 

1. Para obter detalhes sobre como seu código foi atualizado e ver as próximas etapas sugeridas, no **Transformation Hub**, escolha o botão de reticências **Visualizações e Mais Ações** e, em seguida, escolha **Mostrar resumo da transformação**.

------