

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Transformation des applications Java avec Amazon Q Developer
<a name="transform-java"></a>

**Note**  
AWS Transform custom est désormais disponible pour les mises à niveau vers Java. Une IA agentic qui gère les mises à niveau de version, la migration des SDK, etc., et qui s'améliore à chaque exécution. [Mise en route](https://docs.aws.amazon.com/transform/latest/userguide/custom-get-started.html)

Amazon Q prend en charge les types de transformations suivants pour les applications Java : 
+ Mises à niveau du langage Java et des versions de dépendance
+ Conversion SQL intégrée pour la migration de bases de données Oracle vers PostgreSQL

Pour commencer, consultez la rubrique relative au type de transformation que vous souhaitez effectuer. 

**Topics**
+ [Quotas](#quotas-java-transformation-ide)
+ [Mise à niveau des versions de Java avec Amazon Q Developer](code-transformation.md)
+ [Conversion du SQL intégré dans les applications Java avec Amazon Q Developer](transform-sql.md)
+ [Transformation du code sur la ligne de commande avec Amazon Q Developer](transform-CLI.md)
+ [Affichage de l’historique des tâches liées à la transformation](transformation-job-history.md)
+ [Résolution des problèmes liés aux transformations Java](troubleshooting-code-transformation.md)

## Quotas
<a name="quotas-java-transformation-ide"></a>

Les transformations d’applications Java avec Amazon Q dans l’IDE et la ligne de commande maintiennent les quotas suivants : 
+ **Lignes de code par tâche** : nombre maximal de lignes de code qu’Amazon Q peut transformer dans une tâche de transformation donnée. 
+ **Lignes de code par mois** : nombre maximal de lignes de code qu’Amazon Q peut transformer en un mois. 
+ **Tâches simultanées** : nombre maximal de tâches de transformation que vous pouvez exécuter en même temps. Ce quota s’applique à toutes les transformations de l’IDE, y compris les [transformations .NET dans Visual Studio](transform-dotnet-IDE.md).
+ **Tâches par mois** : nombre maximal de tâches de transformation que vous pouvez exécuter en un mois. 


| Ressource | Quotas | 
| --- | --- | 
| Lignes de code par tâche | Offre gratuite : 1 000 lignes de code | 
| Lignes de code par mois | Offre gratuite : 2 000 lignes de code | 
| Tâches simultanées |  1 tâche par utilisateur 25 offres d'emploi par AWS compte  | 
| Tâches par mois |  Niveau Pro : 1 000 tâches Offre gratuite : 100 tâches  | 

# Mise à niveau des versions de Java avec Amazon Q Developer
<a name="code-transformation"></a>

Amazon Q Developer peut mettre à niveau vos applications Java vers de nouvelles versions de langage dans l’environnement de développement intégré (IDE). Les modifications qu'Amazon Q peut apporter pour mettre à niveau votre code incluent la mise à jour des composants de code obsolètes APIs ainsi que la mise à niveau des bibliothèques, des frameworks et des autres dépendances de votre code. 

Pour transformer votre code, Amazon Q le crée d’abord dans la version de langage source, puis vérifie qu’il contient les informations nécessaires pour effectuer la transformation. Une fois que votre code a été transformé avec succès, vous vérifiez et acceptez les modifications dans votre IDE. Dans la mesure où Amazon Q Developer effectue les modifications minimales nécessaires pour rendre votre code mis à niveau compatible avec le JDK cible, une transformation supplémentaire est nécessaire pour mettre à niveau les bibliothèques et les dépendances de votre projet. Pour plus d’informations sur la manière dont Amazon Q transforme votre code, consultez [Comment Amazon Q Developer transforme le code pour les mises à niveau du langage Java](how-CT-works.md).

**Topics**
+ [Mises à niveau Java prises en charge et IDEs](#supported-languages-IDEs)
+ [Étape 1 : Prérequis](#java-upgrade-prerequisites)
+ [Étape 2 : configuration de votre projet Maven](#configure-project)
+ [Étape 3 : création d’un fichier de mise à niveau des dépendances (facultatif)](#create-dependency-upgrade-file)
+ [Étape 4 : transformation de votre code](#transform-code-java)
+ [Comment Amazon Q Developer transforme le code pour les mises à niveau du langage Java](how-CT-works.md)

## Mises à niveau Java prises en charge et IDEs
<a name="supported-languages-IDEs"></a>

Amazon Q prend actuellement en charge les versions de code source Java et les versions cibles suivantes pour les transformations. La transformation du code vers la même version de Java inclut la mise à niveau des bibliothèques et des autres dépendances de la version du code source.


**Mises à niveau de Java prises en charge**  

| Version de code source | Versions cibles prises en charge | 
| --- | --- | 
| Java 8  | Java 17 et Java 21 | 
| Java 11 | Java 17 et Java 21 | 
| Java 17 | Java 17 et Java 21  | 
| Java 21 |  Java21   | 

Amazon Q prend en charge les mises à niveau de Java dans les domaines suivants IDEs :
+ Modules dans JetBrains IDEs
+ Projets et espaces de travail dans Visual Studio Code

## Étape 1 : Prérequis
<a name="java-upgrade-prerequisites"></a>

Avant de continuer, vérifiez que vous avez bien terminé les étapes de [Configuration d’Amazon Q dans votre IDE](q-in-IDE-setup.md).

Avant de commencer une tâche de transformation de code, vérifiez que les prérequis suivants sont respectés : 
+ Votre projet est écrit dans une [version de Java prise en charge](#supported-languages-IDEs) et est créé sur Maven.
+ Votre projet est créé correctement avec Maven dans votre IDE. Maven 3.8 ou version ultérieure est actuellement pris en charge. 
+ Le JDK source de votre projet est disponible localement et constitue la version de votre code source. Par exemple, si vous transformez du code Java 8, votre installation JDK locale doit être le JDK 8.
+ Votre projet est créé en 55 minutes ou moins. 
+ Votre projet est configuré correctement et la version appropriée du JDK est spécifiée. Pour de plus amples informations, veuillez consulter [Étape 2 : configuration de votre projet Maven](#configure-project).
+ Votre projet ne requiert pas d’accès aux ressources de votre réseau privé, y compris à un cloud privé virtuel (VPC) ou à un réseau sur site. Par exemple, si votre projet contient des tests unitaires qui se connectent à une base de données de votre réseau, la transformation échouera.
+ Votre projet n’utilise pas de plug-ins qui créent des packages de langages autres que Java dans votre projet Java. Par exemple, si votre projet utilise le [frontend-maven-plugin](https://github.com/eirslett/frontend-maven-plugin)pour exécuter du JavaScript code frontal en plus de votre code source Java, la transformation échouera.
+ Votre réseau local autorise les chargements vers des compartiments Amazon S3 qu’Amazon Q utilise pour transformer votre code. Pour plus d’informations, consultez [Allow access to Amazon S3 buckets in data perimeters](firewall.md#data-perimeters).
+ Votre application utilise uniquement des caractères UTF-8. Si votre application utilise des caractères non UTF-8, Amazon Q essaiera tout de même de transformer votre code. 

## Étape 2 : configuration de votre projet Maven
<a name="configure-project"></a>

Pour configurer votre projet, utilisez les informations suivantes relatives à l’IDE que vous utilisez.

### Configuration d’un projet dans JetBrains
<a name="configure-jetbrains"></a>

Pour configurer votre projet dans JetBrains, vous devrez peut-être spécifier les paramètres de projet et de module suivants. 

Si vos modules utilisent le même JDK et le même niveau de langage que votre projet, vous n’aurez pas besoin de mettre à jour les paramètres de module.
+ Kit SDK du projet : JDK utilisé pour compiler votre projet. 
+ Niveau de langage du projet : version de Java utilisée dans votre projet.
+ Kit SDK du module : JDK utilisé pour compiler votre module. 
+ Niveau de langage du module : version de Java utilisée dans votre module. 
+ Maven Runner JRE : JDK avec lequel vous créez votre module. 

**Mise à jour des paramètres du projet et du module**

Pour mettre à jour votre kit SDK et les paramètres de niveau de langage pour votre projet ou module, procédez comme suit :

1. Dans votre IDE JetBrains, choisissez **Fichier**, puis **Structure du projet**. 

1. La fenêtre Structure du projet s’ouvre. Sous **Paramètres du projet**, choisissez **Projet**. 

   1. Pour mettre à jour le JDK de votre projet, choisissez-le dans la liste déroulante en regard de **Kit SDK**. 

   1. Pour mettre à jour le langage de votre projet, choisissez-le dans le menu déroulant à côté de **Niveau de langage**. 

1. Sous **Paramètres du projet**, choisissez **Modules**. 

   1. Pour mettre à jour le JDK de votre module, choisissez-le dans la liste déroulante en regard de **Kit SDK**. 

   1. Pour mettre à jour le langage de votre module, choisissez-le dans le menu déroulant en regard du **niveau de langage**.

Pour plus d’informations, consultez [Paramètres de structure de projet](https://www.jetbrains.com/help/idea/project-settings-and-structure.html) et [Paramètres de structure de module](https://www.jetbrains.com/help/idea/configure-modules.html) dans la documentation JetBrains.

**Mise à jour de vos paramètres Maven**

Pour mettre à jour votre JRE Maven Runner, procédez comme suit :

1. Dans votre IDE JetBrains, choisissez l’icône d’engrenage, puis **Paramètres** dans le menu qui s’ouvre. 

1. Dans la fenêtre **Paramètres**, choisissez **Création, Exécution, Déploiement**, puis **Outils de création**, **Maven** et **Runner**.

1. Dans le champ JRE, choisissez le JDK utilisé pour créer le module que vous transformez.

### Configuration d’un projet dans VS Code
<a name="configure-vsc"></a>

Pour configurer votre projet en VS Code, le projet doit contenir les éléments suivants : 
+ Un fichier `pom.xml` dans le dossier racine de votre projet
+ Un fichier `.java` dans le répertoire de votre projet

Si votre projet contient un wrapper Maven exécutable (`mvnw` pour macOS ou `mvnw.cmd` pour Windows), assurez-vous qu’il se trouve à la racine de votre projet. Amazon Q utilise le wrapper et aucune autre configuration Maven n’est nécessaire.

Si vous n’utilisez pas de wrapper Maven, installez Maven. Pour plus d’informations, consultez [Installation d’Apache Maven](https://maven.apache.org/install.html) dans la documentation Apache Maven.

Après l’installation de Maven, ajoutez-le à votre variable `PATH`. Pour plus d’informations, consultez [Comment ajouter Maven à mon `PATH` ?](troubleshooting-code-transformation.md#add-maven-to-path). Votre variable `runtime` Java doit également pointer vers un JDK et non vers un JRE. Pour vérifier que votre configuration est correcte, exécutez `mvn -v`. La sortie doit afficher votre version Maven et la variable `runtime` pointant vers le chemin d’accès à votre JDK.

## Étape 3 : création d’un fichier de mise à niveau des dépendances (facultatif)
<a name="create-dependency-upgrade-file"></a>

Vous pouvez fournir à Amazon Q un fichier de *mise à niveau des dépendances*, un fichier YAML répertoriant les dépendances de votre projet et les versions vers lesquelles effectuer la mise à niveau lors d’une transformation. En fournissant un fichier de mise à niveau des dépendances, vous pouvez spécifier les dépendances tierces et internes qu’Amazon Q ne serait peut-être pas en mesure de mettre à niveau autrement.

Les dépendances internes font référence aux bibliothèques, aux plug-ins et aux cadres gérés par votre organisation et qui ne sont disponibles que localement ou sur le réseau privé de votre organisation. Amazon Q est en mesure d’accéder à vos dépendances internes lorsqu’il réalise des builds dans votre environnement local. Pour de plus amples informations, veuillez consulter [Création du code dans votre environnement local](how-CT-works.md#java-local-builds). Les dépendances tierces sont des dépendances accessibles au public ou des dépendances open source qui ne sont pas propres à votre organisation.

Vous pouvez spécifier les dépendances internes que vous souhaitez mettre à niveau dans un fichier YAML et Amazon Q les met à niveau lors de la mise à niveau du JDK (par exemple, Java 8 vers 17). Vous pouvez lancer une transformation distincte (17 vers 17 ou 21 vers 21) après la mise à niveau initiale du JDK pour mettre à niveau les dépendances tierces.

Une fois qu’Amazon Q a effectué une mise à niveau minimale du JDK, vous pouvez lancer une transformation distincte pour mettre à niveau toutes les dépendances tierces. Vous pouvez également spécifier les dépendances tierces et leurs versions dans un fichier YAML pour ne mettre à niveau ces dépendances que lors de la transformation de mise à niveau de la bibliothèque.

Amazon Q vous demandera de fournir un fichier de mise à niveau des dépendances lors de la transformation. Si vous souhaitez en fournir un, vérifiez d’abord que le fichier a été configuré correctement. Les champs suivants sont obligatoires dans le fichier YAML :
+ nom : nom du fichier de mise à niveau des dépendances.
+ description (facultatif) : description du fichier de mise à niveau des dépendances et pour quelle transformation.
+ dependencyManagement : contient la liste des dépendances et des plug-ins à mettre à niveau.
+ dépendances : contient le nom et la version des bibliothèques à mettre à niveau.
+ plug-ins : contient les noms et les versions des plug-ins à mettre à niveau.
+ identifiant : nom de la bibliothèque, du plug-in ou de toute autre dépendance.
+ targetVersion : version de la dépendance vers laquelle effectuer la mise à niveau.
+ versionProperty (facultatif) : version de la dépendance que vous définissez, telle que définie avec la balise `properties` dans le fichier `pom.xml` de votre application.
+ originType : indique si la dépendance est interne ou tierce ; spécifié par FIRST\$1PARTY ou THIRD\$1PARTY.

Voici un exemple de fichier YAML de mise à niveau des dépendances et la configuration requise pour qu’Amazon Q puisse l’analyser :

```
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"
```

## Étape 4 : transformation de votre code
<a name="transform-code-java"></a>

Pour tester la configuration de votre IDE, téléchargez et décompressez l’exemple de projet, puis effectuez les étapes suivantes pour votre IDE. Si vous pouvez consulter les modifications proposées et le résumé des transformations, vous êtes prêt à transformer votre propre projet de code. Si la transformation échoue, votre IDE n’est pas configuré correctement. Pour résoudre les problèmes de configuration, consultez [Étape 2 : configuration de votre projet Maven](#configure-project) et [Résolution des problèmes](troubleshooting-code-transformation.md).

**Note**  
N’éteignez pas, ne fermez pas et ne mettez pas votre machine locale en veille pendant la transformation du code. Les versions initiale et de validation utilisent l’environnement côté client, qui nécessite une connexion réseau stable. 

Suivez ces étapes pour mettre à niveau la version du langage de codage de votre projet ou de votre module de code.

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

1. Ouvrez le module dans lequel vous souhaitez mettre à niveau JetBrains. Assurez-vous d’avoir généré correctement votre projet dans l’IDE. 

1. Choisissez le logo Amazon Q et demandez à Amazon Q de transformer votre application dans le panneau de discussion qui s'ouvre.

1. La fenêtre contextuelle **Transformer votre application** s’affiche. Choisissez le projet que vous souhaitez mettre à niveau dans la liste déroulante, puis **Transformer**. 

1. Amazon Q vous invite à fournir un fichier de dépendance de mise à niveau. Si vous avez configuré un fichier YAML avec les dépendances et la version vers lesquelles effectuer la mise à niveau, ajoutez-le. Amazon Q validera le fichier pour s’assurer qu’il a été configuré correctement. Si un message d’erreur s’affiche, vérifiez le format et les champs obligatoires décrits dans [Étape 3 : création d’un fichier de mise à niveau des dépendances (facultatif)](#create-dependency-upgrade-file).

1. Amazon Q entame la transformation. Vous pouvez consulter la progression dans l’onglet **Détails de la transformation**. 

1. Une fois la transformation terminée, vous pouvez vérifier le code mis à niveau avant de mettre à jour votre projet. Pour afficher le nouveau code, accédez à l’onglet **Détails de la transformation**, puis choisissez **Afficher la comparaison**. Dans la fenêtre **Appliquer le correctif** qui apparaît, choisissez un fichier pour ouvrir une vue comparative comportant votre code source et le code mis à niveau. 

1. Pour accepter les modifications apportées par Amazon Q, choisissez **Afficher la comparaison** pour ouvrir la fenêtre **Appliquer le correctif**. Sélectionnez tous les fichiers mis à jour, puis cliquez sur **OK** pour mettre à jour votre projet sur place. 

1. Pour obtenir des détails sur la façon dont votre code a été mis à niveau et les prochaines étapes suggérées, dans l’onglet **Détails de la transformation**, choisissez **Afficher le résumé de la transformation**. 

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

1. Ouvrez le projet ou l’espace de travail que vous souhaitez mettre à niveau dans VS Code. Assurez-vous d’avoir bien créé votre projet dans l’IDE. 

1. Choisissez le logo Amazon Q et demandez à Amazon Q de transformer votre application dans le panneau de discussion qui s'ouvre.

1. Choisissez le projet que vous souhaitez mettre à niveau dans la barre de recherche en haut de l’IDE. 

1. Si Amazon Q ne trouve pas la version de votre code source, il vous invite à choisir la version de votre code. Choisissez la version dans laquelle votre code source est écrit, puis choisissez **Transformer** dans la fenêtre contextuelle pour continuer. 

1. Si vous y êtes invité, saisissez le chemin d’accès `JAVA_HOME` de votre JDK. Pour plus d’informations, consultez [Configuration de votre projet VS Code](#configure-vsc). 

1. Amazon Q vous invite à fournir un fichier de dépendance de mise à niveau. Si vous avez configuré un fichier YAML avec les dépendances et la version vers lesquelles effectuer la mise à niveau, ajoutez-le. Amazon Q validera le fichier pour s’assurer qu’il a été configuré correctement. Si un message d’erreur s’affiche, vérifiez le format et les champs obligatoires décrits dans [Étape 3 : création d’un fichier de mise à niveau des dépendances (facultatif)](#create-dependency-upgrade-file).

1. Amazon Q entame la transformation. Vous pouvez consulter la progression dans l’onglet **Hub de transformation**. 

1. Une fois la transformation terminée, l’onglet **Modifications proposées** s’ouvre. Pour vérifier le code mis à jour avant de mettre à jour votre projet, choisissez **Télécharger les modifications proposées**. Choisissez un fichier pour ouvrir une vue comparative avec votre code source et le code mis à jour. 

1. Pour accepter les modifications apportées par Amazon Q, accédez à l’onglet **Modifications proposées**, puis choisissez **Accepter**. 

1. Pour obtenir des informations sur la manière dont votre code a été mis à niveau et sur les prochaines étapes suggérées, accédez au **Hub de transformation**, cliquez sur le bouton avec les points de suspension **Vues et autres actions**, puis sur **Afficher le résumé de la transformation**.

------

# Comment Amazon Q Developer transforme le code pour les mises à niveau du langage Java
<a name="how-CT-works"></a>

Pour transformer votre code, Amazon Q Developer génère un plan de transformation qu’il utilise pour mettre à niveau la version du langage de code de votre projet. Après avoir transformé votre code, il fournit un résumé de la transformation et un fichier comparatif pour que vous puissiez examiner les modifications avant de les accepter. Dans la mesure où Amazon Q Developer effectue les modifications minimales nécessaires pour rendre votre code mis à niveau compatible avec le JDK cible, une transformation supplémentaire est nécessaire pour mettre à niveau les bibliothèques et les dépendances de votre projet. Les sections suivantes fournissent plus de détails sur la manière dont Amazon Q effectue la transformation.

## Génération de votre code et création d’un plan de transformation
<a name="build-code-create-plan"></a>

Pour commencer à transformer votre code, Amazon Q crée votre projet localement et génère un artefact de compilation contenant votre code source, les dépendances du projet et les journaux de génération. 

Après avoir généré l’artefact de génération, Amazon Q génère votre code dans un environnement de génération sécurisé et crée un plan de transformation personnalisé en fonction du projet ou du module que vous mettez à niveau. Le plan de transformation décrit les modifications spécifiques qu’Amazon Q tentera d’apporter, notamment les nouvelles versions de dépendance, les modifications majeures du code et les suggestions de remplacement du code obsolète. Ces modifications sont basées sur la version préliminaire de votre code et peuvent changer au cours de la transformation.

## Transformation de votre code
<a name="transform-code"></a>

Pour transformer votre code, Amazon Q tente de le mettre à niveau vers la version Java cible en fonction des modifications proposées dans le plan de transformation. Au fur et à mesure des modifications, il génère à nouveau et exécute des tests unitaires existants dans votre code source pour corriger de manière itérative les erreurs rencontrées. La mise à niveau du JDK peut être effectuée à partir de la version de code source suivante vers la version cible :
+ Java 8 à 17
+ Java 8 à 21
+ Java 11 à 17
+ Java 11 à 21
+ Java 17 à 21

Amazon Q apporte les modifications minimales nécessaires pour rendre votre code compatible avec la version Java cible. Une fois qu’Amazon Q a effectué une mise à niveau minimale du JDK, vous pouvez lancer une transformation distincte pour mettre à niveau toutes les dépendances tierces. Vous pouvez également spécifier les dépendances tierces et leurs versions dans un fichier YAML pour ne mettre à niveau ces dépendances que lors de la transformation de mise à niveau de la bibliothèque.

Amazon Q tente d’apporter les modifications suivantes lors de la mise à niveau de votre code :
+ Mise à jour des composants de code obsolètes conformément aux recommandations de la version Java cible
+ Mise à jour des bibliothèques et des cadres populaires vers une version compatible avec la version Java cible. Cela inclut la mise à jour des bibliothèques et cadres suivants vers leurs dernières versions majeures disponibles : 
  + Apache Commons IO 
  + Apache HttpClient 
  + bc-fips 
  + Cucumber-JVM 
  + Hibernate 
  + Jackson Annotations 
  + JakartaEE
  + Javax 
  + javax.servlet 
  + jaxb-api 
  + jaxb-impl 
  + jaxen 
  + jcl-over-slf4j 
  + json-simple 
  + jsr305 
  + junit 
  + junit-jupiter-api 
  + Log4j 
  + Micronaut 
  + Mockito 
  + mockito-core 
  + Okio 
  + PowerMockito 
  + Quarkus 
  + slf4j 
  + slf4j-api 
  + Spring Boot 
  + Spring Framework 
  + Spring Security 
  + Swagger 
  + testng 

**Note**  
N’éteignez pas ou ne fermez pas votre machine locale pendant la transformation du code, car la compilation côté client nécessite une connexion réseau stable.

## Création du code dans votre environnement local
<a name="java-local-builds"></a>

Au cours d’une transformation, Amazon Q effectue des versions de vérification dans votre environnement local. Amazon Q transforme votre code côté serveur en plusieurs étapes. Après chaque étape, Amazon Q envoie le code à votre environnement local pour créer et tester les modifications apportées. Le code est ensuite renvoyé au serveur pour poursuivre la transformation. 

La version intégrée à votre environnement local permet de vérifier le code transformé en permettant à Amazon Q d’exécuter des tests qui nécessitent l’accès à des ressources privées. Afin de minimiser les risques de sécurité associés à la création de code généré par l’IA dans votre environnement local, Amazon Q examine et met à jour le code généré afin de résoudre les problèmes de sécurité.

## Révision du résumé de la transformation et acceptation des modifications
<a name="review-plan-accept-changes"></a>

Une fois la transformation terminée, Amazon Q fournit un résumé de la transformation avec des détails sur les modifications apportées, y compris le statut de la version finale qui indique si l’ensemble de votre projet a été mis à niveau. Vous pouvez également consulter un résumé du journal de génération afin de comprendre les problèmes qui ont empêché Amazon Q de générer votre code dans la version mise à niveau.

Le résumé de la transformation inclut également les différences entre les modifications proposées dans le plan de transformation et celles finalement apportées par Amazon Q pour mettre à niveau votre code, ainsi que toutes les modifications supplémentaires qui ne figuraient pas dans le plan d’origine. 

Après avoir examiné le résumé de la transformation, vous pouvez consulter les modifications proposées par Amazon Q dans une vue comparative des fichiers. Les modifications de code suggérées par Amazon Q n’affecteront pas les fichiers de votre projet en cours tant que vous n’aurez pas accepté les modifications. Le code transformé est disponible jusqu’à 30 jours après la fin de la transformation. 

## Réalisation de transformations partiellement réussies
<a name="partially-successful-transformations"></a>

En fonction de la complexité et des spécificités de votre base de code, il se peut que la transformation soit partiellement réussie dans certains cas. Cela signifie qu’Amazon Q n’a pu transformer que certains fichiers ou certaines zones de code dans votre projet. Le cas échéant, vous devez mettre à jour manuellement le code restant pour que votre projet puisse être compilé dans la version de langage mise à jour. 

Pour transformer le reste de votre code, vous pouvez utiliser le chat Amazon Q dans l’IDE. Vous pouvez demander à Amazon Q de consulter les fichiers partiellement mis à jour et de fournir un nouveau code pour résoudre les problèmes, tels que les erreurs de compilation. Vous pouvez également utiliser des fonctionnalités telles que [le développement de fonctionnalités](q-in-IDE-chat.md#develop-code) et [le contexte de l'espace](workspace-context.md) de travail pour inclure une plus grande partie de votre projet en tant que contexte et obtenir des suggestions pour plusieurs fichiers à la fois. 

# Conversion du SQL intégré dans les applications Java avec Amazon Q Developer
<a name="transform-sql"></a>

L'agent Amazon Q Developer pour la transformation du code dans l'IDE peut vous aider à convertir le SQL embarqué afin de terminer la migration de base de données Oracle vers PostgreSQL AWS Database Migration Service avec AWS (DMS).

AWS DMS est un service cloud qui permet de migrer des bases de données relationnelles, des entrepôts de données, des bases de données NoSQL et d'autres types de magasins de données. La conversion de schéma DMS dans AWS DMS vous permet de convertir des schémas de base de données et des objets de code que vous pouvez appliquer à votre base de données cible. Pour plus d'informations, voir [Qu'est-ce que c'est AWS Database Migration Service ?](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) dans le *guide de AWS Database Migration Service l'utilisateur*.

Lorsque vous utilisez AWS DMS et DMS Schema Conversion pour migrer une base de données, il se peut que vous deviez convertir le code SQL intégré de votre application afin qu'il soit compatible avec votre base de données cible. Plutôt que de le convertir manuellement, vous pouvez utiliser Amazon Q dans l’IDE pour automatiser la conversion. Amazon Q utilise les métadonnées issues d’une conversion de schéma DMS pour convertir le SQL intégré de votre application en version compatible avec votre base de données cible.

Amazon Q peut actuellement convertir le code SQL dans des applications Java pour les bases de données Oracle migrées vers PostgreSQL. Vous ne verrez l’option permettant de transformer le code SQL dans l’IDE que si votre application contient des instructions Oracle SQL. Pour plus d’informations, consultez les prérequis. 

## Étape 1 : Prérequis
<a name="sql-transform-prereqs"></a>

Avant de continuer, vérifiez que vous avez bien terminé les étapes de [Configuration d’Amazon Q dans votre IDE](q-in-IDE-setup.md).

Avant de commencer une tâche de transformation de code pour une conversion SQL, vérifiez que vous respectez les conditions requises suivantes :
+ Vous migrez une application Java avec SQL intégré d’une base de données Oracle vers une base de données PostgreSQL. Votre application doit contenir des instructions Oracle SQL pour pouvoir être transformée. 
+ Vous avez terminé le processus de conversion de votre schéma de base de données à l’aide de la conversion de schéma AWS DMS. Pour plus d’informations, consultez [Migrating Oracle databases to Amazon RDS for PostgreSQL with DMS Schema Conversion](https://docs.aws.amazon.com/dms/latest/sbs/schema-conversion-oracle-postgresql.html) dans le *Guide de migration de base de données*.
+ Une fois la conversion du schéma terminée, vous avez téléchargé le fichier du projet de migration depuis la console AWS DMS.

## Étape 2 : configuration de votre application
<a name="sql-transform-configure"></a>

Pour convertir votre code avec SQL intégré, votre projet Java doit contenir au moins un fichier `.java`. 

Si vous utilisez un JetBrains IDE, vous devez définir le champ SDK dans les paramètres de structure du projet sur le JDK applicable. Pour plus d'informations sur la configuration des paramètres de structure de [projet, consultez la section Paramètres de structure](https://www.jetbrains.com/help/idea/project-settings-and-structure.html) de projet dans la JetBrains documentation. 

## Étape 3 : conversion du SQL intégré
<a name="convert-sql"></a>

Pour convertir le code SQL intégré de votre application Java dans un format compatible avec votre base de données cible PostgreSQL, procédez comme suit :

1. Dans votre environnement de développement intégré sur lequel Amazon Q est installé, ouvrez la base de code Java qui contient le code SQL intégré que vous devez convertir. 

1. Choisissez l’icône d’Amazon Q pour ouvrir le volet. 

1. Demandez à Amazon Q de transformer votre application dans le panneau de discussion.

1. Si votre application Java est éligible à la conversion SQL, Amazon Q vous demandera de choisir le type de transformation que vous souhaitez effectuer. Saisissez **SQL conversion**. 

1. Amazon Q vous invite à télécharger le fichier de métadonnées du schéma que vous avez récupéré sur Amazon S3. Dans le chat, Amazon Q fournit des instructions pour récupérer le fichier. 

1. Amazon Q vous invite à fournir le projet qui contient le code SQL intégré ainsi que le fichier de schéma de base de données. Choisissez les fichiers appropriés dans les menus déroulants du volet de chat.

1. Vérifiez que les informations extraites par Amazon Q du schéma de base de données sont exactes. 

1. Amazon Q commence à convertir votre code SQL. Cette étape peut durer quelques minutes.

1. Une fois qu’Amazon Q a converti le code SQL, il fournit une comparaison avec toutes les mises à jour apportées à vos fichiers. Passez en revue les modifications apportées aux différences, puis acceptez-les pour mettre à jour votre code. 

   Amazon Q fournit également un résumé de la transformation avec des informations détaillées sur les modifications apportées.

1. Après avoir mis à jour votre code, revenez à la console AWS DMS pour vérifier que le nouveau code SQL est compatible avec la base de données migrée. 

# Transformation du code sur la ligne de commande avec Amazon Q Developer
<a name="transform-CLI"></a>

Vous pouvez transformer vos applications depuis la ligne de commande avec l’outil de transformation de ligne de commande Amazon Q Developer. Pour transformer votre code, vous indiquez le chemin d’accès à votre code source et à tous les fichiers de configuration nécessaires, et Amazon Q génère du nouveau code en plusieurs étapes. Tout au long de la transformation, Amazon Q crée du code sur votre environnement local pour vérifier les modifications. Pour de plus amples informations, veuillez consulter [Création du code dans votre environnement local](#local-builds). Amazon Q crée une nouvelle branche dans votre référentiel où il valide les modifications de code. Lorsque la transformation est terminée, vous pouvez fusionner la branche dans votre branche d’origine de façon à intégrer les modifications dans votre base de code. 

Pour commencer, installez l’outil de ligne de commande et authentifiez-vous, puis consultez les commandes pour configurer et démarrer une transformation. 

**Topics**
+ [Création du code dans votre environnement local](#local-builds)
+ [Commandes](#commands)
+ [Exécution d’une transformation sur la ligne de commande avec Amazon Q Developer](run-CLI-transformations.md)
+ [Résolution des problèmes liés aux transformations sur la ligne de commande](troubleshooting-CLI-transformations.md)
+ [Historique des versions de l’outil de transformation en ligne de commande Amazon Q Developer](transform-CLI-versions.md)

## Création du code dans votre environnement local
<a name="local-builds"></a>

Au cours d’une transformation, Amazon Q effectue des versions de vérification dans votre environnement local. Amazon Q transforme votre code côté serveur en plusieurs étapes. Après chaque étape, Amazon Q envoie le code à votre environnement local pour créer et tester les modifications apportées. Le code est ensuite renvoyé au serveur pour poursuivre la transformation. 

La version intégrée à votre environnement local permet de vérifier le code transformé en permettant à Amazon Q d’exécuter des tests qui nécessitent l’accès à des ressources privées. Afin de minimiser les risques de sécurité associés à la création de code généré par l’IA dans votre environnement local, Amazon Q examine et met à jour le code généré afin de résoudre les problèmes de sécurité.

**Note**  
Amazon Q effectue des transformations en fonction des demandes, des descriptions et du contenu de votre projet. Pour garantir la sécurité, évitez d’inclure des artefacts externes non approuvés dans le référentiel de votre projet et validez toujours le code transformé en matière fonctionnalité et de sécurité.

## Commandes
<a name="commands"></a>

Pour step-by-step obtenir des instructions relatives à l'exécution de ces commandes, consultez[Exécution d’une transformation sur la ligne de commande avec Amazon Q Developer](run-CLI-transformations.md). 

Pour configurer une transformation et vous authentifier auprès d’Amazon Q Developer Pro, exécutez :

```
qct configure
```

Pour démarrer une transformation en vue d’une mise à niveau Java, exécutez la commande suivante. Car*<your-source-java-version>*, vous pouvez saisir `JAVA_1.8``JAVA_8`,`JAVA_11`,`JAVA_17`, ou`JAVA_21`. Car*<your-target-java-version>*, vous pouvez saisir l'un `JAVA_17` ou l'autre`JAVA_21`. La `--source_version` et la `--target_version` sont facultatives. L’indicateur `--trust` permet à une transformation de s’exécuter tout en vérifiant le code pour garantir la sécurité.

```
qct transform --source_folder <path-to-folder>
    --source_version <your-source-java-version>        
    --target_version <your-target-java-version>
    --trust
```

Pour démarrer une transformation en vue d’une conversion SQL, exécutez :

```
qct transform --source_folder <path-to-folder>
    --sql_conversion_config_file <path-to-sql-config-file>
```

Pour connaître la version de l’outil de transformation sur la ligne de commande que vous utilisez, exécutez :

```
qct -v
```

Pour obtenir de l’aide concernant les transformations, exécutez :

```
qct -h
```

Pour consulter l’historique de vos tâches de transformation, exécutez :

```
qct history
```

Pour en savoir plus sur l’affichage et la gestion de l’historique de vos tâches de transformation, consultez [Affichage de l’historique des tâches sur la ligne de commande](transformation-job-history.md#cli-job-history).

# Exécution d’une transformation sur la ligne de commande avec Amazon Q Developer
<a name="run-CLI-transformations"></a>

Procédez comme suit pour transformer votre code sur la ligne de commande à l’aide de l’outil de ligne de commande Amazon Q Developer.

## Conditions préalables
<a name="CLI-transformation-prerequisites"></a>

Avant de commencer une transformation sur la ligne de commande, les conditions suivantes doivent être remplies :
+ Si vous mettez à niveau votre version de code Java, votre projet répond aux [conditions requises pour la mise à niveau des versions Java avec Amazon Q](code-transformation.md#java-upgrade-prerequisites).
+ Si vous convertissez du SQL intégré dans une application Java, cette dernière répond aux [conditions requises pour convertir le SQL intégré avec Amazon Q](transform-sql.md#sql-transform-prereqs).
+ Python est installé sur votre environnement de ligne de commande. Voici comment vous allez installer l’outil de ligne de commande. La version minimale actuellement prise en charge est la version 3.12.
+ Vous exécutez la transformation sous macOS ou Linux. 
+ La taille de votre application est inférieure ou égale à 2 Go. 
+ Si vous souhaitez qu’Amazon Q mette à niveau certaines dépendances, vous avez configuré un [fichier de mise à niveau des dépendances](#step-3-dependency-upgrade-file).

## Étape 1 : choix de la méthode d’authentification et ajout des autorisations
<a name="step-1-permissions-auth"></a>

Vous pouvez authentifier IAM Identity Center pour exécuter des transformations sur la ligne de commande. Veillez à disposer des autorisations appropriées.

**Note**  
Les clés gérées par le client ne sont pas prises en charge pour les transformations effectuées sur la ligne de commande.

### Ajout d’autorisations
<a name="transform-CLI-add-permissions"></a>

L’identité IAM associée à l’abonnement Amazon Q Developer que vous utilisez pour vous authentifier doit être autorisée à effectuer des transformations sur la ligne de commande. Avant de continuer, assurez-vous que votre identité IAM possède les autorisations définies dans [Utilisateurs autorisés à exécuter des transformations sur la ligne de commande](id-based-policy-examples-users.md#id-based-policy-examples-allow-cli-transformations).

### Authentifiez-vous auprès d’IAM Identity Center via un abonnement à Amazon Q Developer
<a name="auth-IdC"></a>

Pour vous authentifier auprès d’IAM Identity Center, vous devez être [abonné à Amazon Q Developer Pro en tant qu’utilisateur professionnel](subscribe-users.md) par votre administrateur et vous devez fournir l’URL de démarrage pour vous authentifier via votre abonnement. Vous ou votre administrateur pouvez trouver l’URL de démarrage dans la console Amazon Q Developer. Pour plus d’informations, consultez [Trouver l'URL de démarrage à utiliser avec Amazon Q Developer](manage-account-details.md).

Pour ajouter les autorisations requises, consultez [Ajout d’autorisations](#transform-CLI-add-permissions).

Vous fournissez l’URL de démarrage dans [Étape 4 : configuration et authentification](#step-4-configure-auth).

## Étape 2 : installation de l’outil
<a name="step-2-install"></a>



1. [Chargez l’outil de ligne de commande Amazon Q pour les transformations](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.2.zip) et décompressez-le.

   Pour charger une version précédente de l’outil de ligne de commande, consultez [Historique des versions](transform-CLI-versions.md).

1. Nous vous conseillons de configurer un environnement virtuel en Python pour installer l’outil. Pour créer un environnement virtuel, ouvrez une fenêtre de terminal dans le répertoire où vous souhaitez installer l’outil et exécutez :

   ```
   python -m venv qct-cli 
   ```

1. Pour activer l’environnement virtuel, exécutez : 

   ```
   source qct-cli/bin/activate 
   ```

1. Pour installer l’outil sur votre ligne de commande, exécutez la commande suivante avec le chemin d’accès à l’endroit où vous avez décompressé l’outil, en fonction de l’architecture de votre machine :

------
#### [ Linux\$1aarch64 ]

   ```
   pip install <path/to/unzipped-tool>/Linux_aarch64/amzn_qct_cli-1.2.2-py3-none-any.whl
   ```

------
#### [ Linux\$1x86\$164 ]

   ```
   pip install <path/to/unzipped-tool>/Linux_x86_64/amzn_qct_cli-1.2.2-py3-none-any.whl
   ```

------
**Note**  
Si vous utilisez une ancienne version de l’outil de ligne de commande pour les transformations, remplacez `1.2.2` par la [version](transform-CLI-versions.md) que vous avez chargée.

1. Pour vérifier que l’outil a été installé, exécutez :

   ```
   which qct
   ```

## Étape 3 : création d’un fichier de mise à niveau des dépendances (facultatif)
<a name="step-3-dependency-upgrade-file"></a>

Vous pouvez fournir à Amazon Q un fichier de *mise à niveau des dépendances*, un fichier YAML répertoriant les dépendances de votre projet et les versions vers lesquelles effectuer la mise à niveau lors d’une transformation. En fournissant un fichier de mise à niveau des dépendances, vous pouvez spécifier les dépendances tierces et internes qu’Amazon Q ne serait peut-être pas en mesure de mettre à niveau autrement.

Les dépendances internes font référence aux bibliothèques, aux plug-ins et aux cadres gérés par votre organisation et qui ne sont disponibles que localement ou sur le réseau privé de votre organisation. Amazon Q est en mesure d’accéder à vos dépendances internes lorsqu’il réalise des builds dans votre environnement local. Pour de plus amples informations, veuillez consulter [Création du code dans votre environnement local](transform-CLI.md#local-builds). Les dépendances tierces sont des dépendances accessibles au public ou des dépendances open source qui ne sont pas propres à votre organisation.

Vous pouvez spécifier les dépendances internes que vous souhaitez mettre à niveau dans un fichier YAML et Amazon Q les met à niveau lors de la mise à niveau du JDK (par exemple, Java 8 vers 17). Vous pouvez lancer une transformation distincte (17 vers 17 ou 21 vers 21) après la mise à niveau initiale du JDK pour mettre à niveau les dépendances tierces.

Une fois qu’Amazon Q a effectué une mise à niveau minimale du JDK, vous pouvez lancer une transformation distincte pour mettre à niveau toutes les dépendances tierces. Vous pouvez également spécifier les dépendances tierces et leurs versions dans un fichier YAML pour ne mettre à niveau ces dépendances que lors de la transformation de mise à niveau de la bibliothèque.

Amazon Q vous demandera de fournir un fichier de mise à niveau des dépendances lors de la transformation. Si vous souhaitez en fournir un, vérifiez d’abord que le fichier a été configuré correctement. Les champs suivants sont obligatoires dans le fichier YAML :
+ nom : nom du fichier de mise à niveau des dépendances.
+ description (facultatif) : description du fichier de mise à niveau des dépendances et pour quelle transformation.
+ dependencyManagement : contient la liste des dépendances et des plug-ins à mettre à niveau.
+ dépendances : contient le nom et la version des bibliothèques à mettre à niveau.
+ plug-ins : contient les noms et les versions des plug-ins à mettre à niveau.
+ identifiant : nom de la bibliothèque, du plug-in ou de toute autre dépendance.
+ targetVersion : version de la dépendance vers laquelle effectuer la mise à niveau.
+ versionProperty (facultatif) : version de la dépendance que vous définissez, telle que définie avec la balise `properties` dans le fichier `pom.xml` de votre application.
+ originType : indique si la dépendance est interne ou tierce ; spécifié par FIRST\$1PARTY ou THIRD\$1PARTY.

Voici un exemple de fichier YAML de mise à niveau des dépendances et la configuration requise pour qu’Amazon Q puisse l’analyser :

```
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"
```

## Étape 4 : configuration et authentification
<a name="step-4-configure-auth"></a>

Avant de commencer une transformation, vous devez vous authentifier auprès d’IAM Identity Center et fournir les détails de configuration de votre transformation. 

1. Pour démarrer le processus de configuration de la transformation, exécutez la commande suivante :

   ```
   qct configure
   ```

1. Vous êtes invité à saisir le chemin du JDK pour chaque version Java prise en charge. Il vous suffit de spécifier le chemin d’accès au JDK de la version source de votre application Java, et non la version cible.

1. Ensuite, pour vous authentifier auprès d’IAM Identity Center, vous êtes invité à saisir l’URL de démarrage de votre profil d’abonnement à Amazon Q Developer Pro.

   Ensuite, entrez l' Région AWS endroit où vous avez été abonné au format suivant :`us-east-1`. Pour obtenir une liste des régions prises en charge, consultez [Régions prises en charge](regions.md). Pour obtenir une liste des codes de région, consultez [Points de terminaison régionaux ](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints) dans le *Guide Références générales AWS *. 

1. Vos préférences de configuration sont enregistrées dans un fichier configuration.ini. 

## Étape 5 : exécution d’une transformation
<a name="step-5-run-transformation"></a>

Choisissez le type de transformation que vous effectuez pour voir la configuration et les commandes requises. 

**Note**  
N’éteignez pas ou ne fermez pas votre machine locale pendant la transformation du code, car la compilation côté client nécessite une connexion réseau stable.

------
#### [ Java upgrade ]

**Modification du plan de transformation**

Lors des mises à niveau de la version Java, Amazon Q génère un plan de transformation que vous pouvez consulter avant le début de la transformation. Vous avez la possibilité de demander les modifications suivantes au plan :
+ Quelles bibliothèques Amazon Q met à niveau, à partir de la liste incluse dans le plan
  + Exemples d’invites :
    + Effectue uniquement une mise à niveau <dépendance1>, <dépendance2> et <dépendance5>
    + N’effectue pas de mise à niveau de <dépendance1> ou <dépendance2>
+ Version cible vers laquelle mettre à niveau une bibliothèque
  + Exemples d’invites :
    + Mets à niveau <dépendance> plutôt vers cette version <version>
+ Quelles étapes Amazon Q doit effectuer
  + Exemples d’invites :
    + Effectue uniquement les étapes 1 à 7
    + N’exécute pas les étapes 5 à 9
+ Ajoute des dépendances supplémentaires à mettre à niveau (option uniquement lors de la mise à niveau vers une version plus récente du JDK)
  + Exemples d’invites :
    + Mets également à niveau la <dépendance1> vers <version2>

**Mets à niveau le code Java**

1. Exécute la commande suivante pour démarrer une transformation en vue d’une mise à niveau Java. Remplace `<path-to-folder>` par le chemin du dossier contenant le code transformé et `<your-target-java-version>` par `JAVA_17` ou `JAVA_21`.

   ```
   qct transform --source_folder <path-to-folder>
       --target_version <your-target-java-version>
   ```

   Options de commande supplémentaires : 
   + Si vous spécifiez les dépendances à mettre à niveau, ajoutez l’option `--dependency_upgrade_file` avec le chemin d’accès à votre fichier de mise à niveau des dépendances.
   + Si vous ne souhaitez pas revoir ou mettre à jour le plan de transformation, ajoutez l’indicateur `--no-interactive` à votre commande. Amazon Q ne vous demandera pas de commentaires sur le plan et vous n’aurez pas la possibilité de demander des modifications.

1. Votre version de Maven est vérifiée avant le début de la transformation. Si vous utilisez au moins la version minimale prise en charge, vous verrez la sortie suivante : 

   ```
   Running command: mvn --version at: path/to/current/directory 
   Your Maven version is supported for transformations.
   ```

   Si vous n’avez pas de version compatible de Maven, vous devez la mettre à jour pour continuer. Pour plus d’informations, consultez [Conditions préalables](#CLI-transformation-prerequisites). 

1. Si vous n’avez pas ajouté l’indicateur `--no-interactive`, Amazon Q vous invite à fournir un feedback sur le plan de transformation. Vous pouvez expliquer les modifications que vous souhaitez apporter en anglais naturel et Amazon Q mettra à jour le plan s’il prend en charge les modifications que vous demandez. 

1. Amazon Q entame la transformation. Il va afficher des mises à jour de statut tout au long de la transformation. Une fois l’opération terminée, Amazon Q fournit le chemin vers lequel les résultats de transformation, les journaux et les fichiers de configuration sont générés. 

   Votre code mis à niveau sera enregistré dans la nouvelle succursale créée par Amazon Q. Amazon Q validera le code en une ou plusieurs validations, en fonction de la sélection que vous aurez effectuée lors de l’exécution de `qct configure`. 

1. Si vous exécutez une autre transformation après avoir mis à niveau votre version de Java, lancez la deuxième transformation dans la branche où vous avez validé les modifications depuis la première transformation. 

------
#### [ SQL conversion ]

Avant de commencer, assurez-vous d’avoir lu [Conversion du SQL intégré dans les applications Java avec Amazon Q Developer](transform-sql.md) pour comprendre les conditions préalables à ce type de transformation. 

1. Pour convertir le SQL intégré, vous devez d’abord créer un fichier YAML contenant le chemin d’accès au fichier de métadonnées de schéma issu de votre [conversion de schéma AWS DMS](https://docs.aws.amazon.com/dms/latest/sbs/schema-conversion-oracle-postgresql.html).

   L’URL de la requête est au format suivant : 

   ```
   schema_conv_metadata_path: <path-to-metadata-zip-file>
   ```

1. Exécutez la commande suivante pour démarrer une transformation pour une conversion SQL. Remplacez `<path-to-folder>` par le chemin d’accès au dossier contenant le code que vous transformez et `<path-to-sql-config-file>` par le chemin d’accès au fichier YAML que vous avez créé à l’étape 1.

   ```
   qct transform --source_folder <path-to-folder>
       --sql_conversion_config_file <path-to-sql-config-file>
   ```

1. Si Amazon Q trouve plusieurs schémas dans votre fichier de métadonnées de schéma, il arrête la transformation et fournit une liste des schémas détectés. Choisissez le schéma à utiliser pour la conversion SQL, puis ajoutez un nouveau champ `schema: <schema-name>` au fichier YAML. 

1. Amazon Q entame la transformation. Il va afficher des mises à jour de statut tout au long de la transformation. Une fois l’opération terminée, Amazon Q fournit le chemin vers lequel les résultats de transformation, les journaux et les fichiers de configuration sont générés. 

   Votre code mis à niveau sera enregistré dans la nouvelle succursale créée par Amazon Q.

------

## Mise en suspens ou annulation d’une transformation
<a name="pause-cancel-CLI-transformations"></a>

Vous pouvez choisir de suspendre ou d’annuler votre tâche de transformation en cours. Vous pouvez suspendre une tâche de transformation pendant 12 heures au maximum avant de pouvoir la reprendre.

**Pour suspendre ou annuler une tâche de transformation de code**

1. Dans votre terminal CLI, appuyez sur **Ctrl\$1C** sur votre clavier.

1. Choisissez si vous souhaitez suspendre ou annuler votre transformation.
   + Saisissez `1` si vous souhaitez suspendre la tâche de transformation du code. Vous pouvez reprendre la tâche dans les 12 heures pour poursuivre la transformation du code à l’aide de la commande QCT suivante : ``qct transform --source_folder=≤/Path/Given/Originally/To/QCT>``.
   + Saisissez `2` si vous souhaitez annuler la tâche de transformation du code.

# Résolution des problèmes liés aux transformations sur la ligne de commande
<a name="troubleshooting-CLI-transformations"></a>

Les informations suivantes peuvent vous aider à résoudre les problèmes courants liés à la transformation d’applications sur la ligne de commande avec Amazon Q Developer.

## Pourquoi mon jeton porteur n’est-il pas actualisé ?
<a name="bearer-token-refresh"></a>

Si l’erreur suivante s’affiche, cela signifie que vous devez actualiser le jeton porteur utilisé pour l’authentification.

```
Refreshing bearer token
('Error refreshing bearer token due to: ', InvalidGrantException('An error occurred (InvalidGrantException) when calling the CreateToken operation: '))
('Error getting bearer token due to: ', RuntimeError(('Error refreshing bearer token due to: ', InvalidGrantException('An error occurred (InvalidGrantException) when calling the CreateToken operation: '))))
```

Pour corriger cette erreur, exécutez la commande suivante :

```
rm ~/.aws/qcodetransform/credentials.json
```

Une fois que vous avez supprimé le fichier d’informations d’identification périmé, exécutez à nouveau `qct transform` pour redémarrer la transformation.

## Pourquoi n’utilise-t-on pas la dernière version de l’outil de ligne de commande ?
<a name="install-latest-version"></a>

Lorsque vous chargez une nouvelle version de l’outil de ligne de commande pour les transformations, il arrive qu’une version précédente de l’outil soit toujours utilisée.

Pour vous assurer d’utiliser la dernière version de l’outil, téléchargez la [dernière version](transform-CLI-versions.md). Exécutez ensuite la commande suivante avec le chemin vers lequel vous avez décompressé l’outil, en fonction de l’architecture de votre machine :

------
#### [ Linux\$1aarch64 ]

```
pip install <path/to/unzipped-tool>/Linux_aarch64/amzn_qct_cli-1.2.2-py3-none-any.whl --force-reinstall
```

------
#### [ Linux\$1x86\$164 ]

```
pip install <path/to/unzipped-tool>/Linux_x86_64/amzn_qct_cli-1.2.2-py3-none-any.whl --force-reinstall
```

------

**Note**  
Si vous utilisez une ancienne version de l’outil de ligne de commande pour les transformations, remplacez `1.2.2` par la [version](transform-CLI-versions.md) que vous avez chargée.

# Historique des versions de l’outil de transformation en ligne de commande Amazon Q Developer
<a name="transform-CLI-versions"></a>

Consultez les informations suivantes pour en savoir plus sur les versions actuelles et passées de l’outil de transformation en ligne de commande Amazon Q Developer. Le tableau inclut le lien de téléchargement, la date de sortie et les notes de publication pour chaque version. 


****  

| Version | Date de publication | Notes de mise à jour | 
| --- | --- | --- | 
|   [1.2.2 (dernière version)](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.2.zip)   | 26 février 2026 | Ajout d'une bannière promotionnelle pour AWS Transform personnalisée à la CLI QCT. Affichage de la bannière sur l'exécution de la commande de transformation et le texte d'aide. Nouvel indicateur --skip-banner pour supprimer la sortie de la bannière. | 
|   [1.2.1](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.1.zip)   | 9 septembre 2025 | Extension Maven mise à jour pour inclure le parent principal POMs lors du téléchargement initial du projet | 
|   [1.2.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.0.zip)   | 7 août 2025 | Ajout de la prise en charge de l’affichage de l’historique des tâches et de la visualisation de la structure des modules pour les projets Java Maven. | 
|   [1.1.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.1.0.zip)   | 21 juillet 2025 | Inclut la prise en charge de la collecte de données télémétriques relatives aux transformations. | 
|   [1.0.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.0.0.zip)   | 27 juin 2025 | L'outil de transformation en ligne de commande est généralement disponible et prend en charge l'authentification via AWS IAM Identity Center uniquement avec un abonnement Amazon Q Developer Pro. Support ajouté pour les abonnements dans la région Europe (Francfort). | 
|   [0,6,0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.6.0.zip)   | 6 juin 2025 | Inclut la prise en charge de la fourniture d’un fichier de mise à niveau des dépendances et de l’itération du plan de transformation. | 
|   [0,5.2](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.5.2.zip)   | 16 avril 2025 | Correctifs de bogues pour résoudre les problèmes liés à la reprise des tâches et aux échecs des applications comportant des dépendances internes. | 
|   [0,5.1](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.5.1.zip)   | 13 mars 2025 | Lorsque vous vous authentifiez avec IAM, vous n’avez plus besoin de fournir de Région AWS. Inclut également un correctif de bogue pour inclure le statut de la tâche dans les journaux de sortie.  | 
|   [0,5,0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.5.0.zip)   | 28 février 2025 | Inclut la prise en charge de l'authentification auprès d'IAM via le. AWS CLI | 
|   [0,4.1](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.4.1.zip)   | 17 février 2025 | Correction d'un bogue permettant d'inclure une assistance pour saisir l' Région AWS endroit où votre abonnement Amazon Q Developer est configuré. | 
|   [0,4,0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.4.0.zip)   | 14 février 2025 | Inclut la prise en charge de la mise à niveau des applications Java vers Java 21. | 
|   [0,3,0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.3.0.zip)   | 12 février 2025 | Inclut la prise en charge de la conversion du code SQL intégré dans les applications Java. | 
|   [0,2,0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.2.0.zip)   | 03 février 2025 | Inclut la prise en charge de la réception de code Java mis à jour dans le cadre de plusieurs validations. | 
|  [0,10](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.1.0.zip)  | 27 novembre 2024 | Première version. Inclut la prise en charge de la mise à niveau des versions de code Java à partir de la ligne de commande. | 

# Affichage de l’historique des tâches liées à la transformation
<a name="transformation-job-history"></a>

Amazon Q fournit un aperçu complet de l’historique de vos tâches de transformation Java, ce qui vous permet de suivre et de passer en revue vos tâches de transformation à la fois dans les IDE et sur la ligne de commande.

L’historique des tâches de transformation inclut les informations suivantes concernant une tâche :
+ **Date** : date à laquelle la tâche de transformation a été exécutée
+ **Nom du projet** : nom du projet qui a été transformé
+ **Statut** : statut actuel de la tâche de transformation
+ **Durée** : durée de la transformation
+ **ID de tâche** : identifiant unique de la tâche de transformation
+ **Fichier de correction comparatif** : lien ou chemin vers le fichier comparatif final indiquant toutes les modifications de code
+ **Résumé** : lien ou chemin vers le fichier récapitulatif de transformation contenant des détails sur les modifications apportées

**Note**  
Seules les transformations exécutées depuis le lancement de cette fonctionnalité seront disponibles dans l’historique des tâches. Pour la date de sortie de la fonctionnalité, consultez [Historique de la documentation du Guide de l’utilisateur Amazon Q Developer](doc-history.md). 

## Affichage de l’historique des tâches dans les IDE
<a name="ide-job-history"></a>

**Note**  
Cette fonctionnalité n’est disponible que dans Visual Studio Code à l’heure actuelle.

Le Hub de transformation dans Visual Studio Code fournit une vue complète de l’historique de vos tâches de transformation Java. 

Un tableau du Hub de transformation répertorie vos 10 tâches de transformation les plus récentes au cours des 30 derniers jours. Dans le tableau, vous pouvez accéder aux artefacts de transformation et actualiser les tâches pour suivre la progression et récupérer les artefacts manquants.

### Extraction des artefacts de transformation
<a name="retrieve-artifacts"></a>

Vous pouvez accéder aux artefacts de transformation, tels que les fichiers de correction comparatifs et les fichiers récapitulatifs, à partir du tableau de l’historique des tâches. Choisissez les liens appropriés pour ouvrir la vue comparative ou le résumé dans votre IDE.

Les artefacts sont stockés localement dans le répertoire `.aws/transform`, de sorte que vous pouvez également accéder aux artefacts de transformation précédemment chargés à partir de tâches précédentes.

### Actualisation du statut de la tâche
<a name="refresh-jobs"></a>

Vous pouvez actualiser le statut de la tâche à partir du tableau de l’historique des tâches. Actualisez une tâche ayant échoué pour obtenir un statut actualisé du côté serveur qui n’a peut-être pas encore atteint votre serveur, par exemple lorsqu’Amazon Q est en mesure de reprendre une tâche ayant échoué. Vous pouvez également actualiser les tâches terminées pour télécharger des artefacts qui n’ont peut-être pas encore fait leur apparition. 

### Comment l’historique des tâches est stocké pour les tâches exécutées dans l’IDE
<a name="ide-history-storage"></a>

Pour Visual Studio Code, toutes les informations et tous les artefacts relatifs aux tâches de transformation sont stockés localement dans le répertoire `.aws/transform`. Le stockage est organisé comme suit :

```
.aws/transform/
├── [project-name-1]/
│   ├── [job-id-1]/
│   │   ├── diff.patch
│   │   ├── [summary-1]/
│   │   │   └── summary.md
│   │   │   └── buildCommandOutput.log
│   └── [job-id-2]/
│       ├── diff.patch
│       ├── [summary-2]/
│       │   └── summary.md
│       │   └── buildCommandOutput.log
└── [project-name-2]/
    └── [job-id-3]/
        ├── diff.patch
        ├── [summary-3]/
        │   └── summary.md
        │   └── buildCommandOutput.log
```

## Affichage de l’historique des tâches sur la ligne de commande
<a name="cli-job-history"></a>

Pour les transformations effectuées sur la ligne de commande, la commande **qct history** permet d’accéder à l’historique de vos tâches de transformation avec des options de personnalisation.

Pour la CLI, les informations relatives à l’historique des tâches de transformation sont stockées localement dans le répertoire `.aws/qcodetransform/history/`.

### Utilisation de la commande d’historique qct
<a name="cli-history-command"></a>

La commande de base pour consulter l’historique de vos tâches de transformation est la suivante :

```
qct history
```

Par défaut, cette commande affiche les 10 tâches de transformation les plus récentes, en plus des tâches en pause ou en cours.

Vous pouvez également spécifier le nombre d’entrées de l’historique des tâches à afficher avec l’indicateur **--limit**. Par exemple, pour afficher 20 tâches, exécutez :

```
qct history --limit 20
```

# Résolution des problèmes liés aux transformations Java
<a name="troubleshooting-code-transformation"></a>

Les informations suivantes peuvent vous aider à résoudre les problèmes courants liés à la transformation des applications Java avec Amazon Q Developer.

**Topics**
+ [Pourquoi Amazon Q ne parvient-il pas à charger mon projet ?](#project-upload-fail)
+ [Pourquoi mes commandes Maven échouent-elles ?](#maven-commands-failing)
+ [Comment ajouter Maven à mon `PATH` ?](#add-maven-to-path)
+ [Pourquoi Amazon Q ne parvient-il pas à créer mon code ?](#build-fail)
+ [Pourquoi ma transformation a-t-elle échoué au bout de 55 minutes ?](#build-time-limit)
+ [Pourquoi ne puis-je pas télécharger mon code transformé ?](#download-code-fail)
+ [Comment accéder aux journaux de transformation du code ?](#logs)
+ [Comment trouver l’ID de ma tâche de transformation ?](#job-id)

## Pourquoi Amazon Q ne parvient-il pas à charger mon projet ?
<a name="project-upload-fail"></a>

Si votre projet ne parvient pas à être chargé, cela peut être dû à l’un des problèmes suivants. Consultez la rubrique correspondant à l’erreur que vous voyez sur Amazon Q. 

**Topics**
+ [Réduire la taille des projets](#reduce-project-size)
+ [Configuration des paramètres du proxy dans votre IDE](#configure-proxy)
+ [Autorisation de l’accès à Amazon S3](#allowlist-s3-bucket)

### Réduire la taille des projets
<a name="reduce-project-size"></a>

Pour transformer votre code, Amazon Q génère un artefact de projet, qui inclut votre code source, les dépendances du projet et les journaux de compilation. La taille maximale d’un artefact de projet pour une tâche de transformation est de 2 Go. Si vous recevez une erreur concernant la taille de l’artefact du projet, vous devez réduire la taille de votre projet ou essayer de transformer un projet plus petit. Vous pouvez consulter la taille du fichier d’artefact de votre projet dans les journaux de transformation du code. Pour de plus amples informations, consultez [Comment accéder aux journaux de transformation du code ?](#logs).

### Configuration des paramètres du proxy dans votre IDE
<a name="configure-proxy"></a>

Pour transformer votre code, Amazon Q charge l’artefact de votre projet dans un compartiment Amazon S3 appartenant au service. Une partie du processus de chargement implique l’utilisation de certificats SSL ou TLS pour établir la communication entre Amazon S3 et votre IDE. Si vous utilisez un serveur proxy, les certificats SSL ou TLS utilisés par votre serveur proxy doivent être fiables, sinon Amazon Q ne pourra pas charger votre projet. 

Si vous recevez une erreur liée à votre proxy ou à vos certificats, vous devrez probablement configurer votre IDE ou votre système d’exploitation pour qu’il fasse confiance à vos certificats ou mettre à jour d’autres paramètres de proxy.

**Note**  
Vous pouvez également rencontrer des problèmes non liés aux certificats si vous vous trouvez derrière le serveur proxy ou le pare-feu de votre entreprise. Si vous suivez les procédures ci-dessous pour configurer vos certificats et que vous rencontrez toujours des problèmes, contactez votre administrateur réseau pour vous assurer que vous êtes autorisé à communiquer avec Amazon S3 depuis votre IDE. Pour de plus amples informations, veuillez consulter [Autorisation de l’accès à Amazon S3](#allowlist-s3-bucket). 

#### Configuration des certificats dans JetBrains
<a name="configure-proxy-JB"></a>

Pour configurer votre environnement d’exécution Java (JRE) IDE JetBrains afin de faire confiance aux certificats SSL ou TLS utilisés par votre serveur proxy, vous devez importer les certificats SSL ou TLS dans le fichier `cacerts` du JRE. Le fichier `cacerts` contient des certificats racines fiables pour des connexions sécurisées telles que HTTPS et SSL, et il fait partie des paramètres de sécurité du JRE. Pour importer un certificat, procédez comme suit. 

**Note**  
Nous vous recommandons d’effectuer une sauvegarde du fichier `cacerts` avant de le modifier, car toute erreur peut entraîner des problèmes de connexion sécurisée.

1. Déterminez le chemin d’accès au fichier `cacerts` dans votre JRE. Le chemin du fichier `cacerts` dans le JRE interne fourni avec votre IDE JetBrains dépend du système d’exploitation et de la version de l’IDE JetBrains que vous utilisez. 

   Vous trouverez ci-dessous des exemples de chemins d’accès au fichier `cacerts` dans les systèmes d’exploitation courants. Choisissez votre système d’exploitation pour voir des exemples.
**Note**  
 `<JetBrains Installation Folder>` fait référence au répertoire dans lequel les produits JetBrains sont installés. Ce répertoire est généralement choisi au cours du processus d’installation.  
Le `jbr` dossier représente le JRE fourni avec JetBrains IDEs, qui est une version spécifique du JRE conçue pour être utilisée avec. JetBrains IDEs

------
#### [ Windows ]

   Le chemin de fichier `cacerts` d’un IDE JetBrains installé sous Windows est le suivant :

   ```
   <JetBrains Installation Folder>\jbr\bin\cacerts
   ```

   Par exemple, si vous avez installé un IDE JetBrains sous Windows à l’emplacement par défaut, le chemin peut être le suivant :

   ```
   C:\Program Files\JetBrains\jbr\bin\cacerts
   ```

------
#### [ macOS ]

   Le chemin de fichier `cacerts` d’un IDE JetBrains installé sur macOS est le suivant :

   ```
   /Applications/JetBrains Toolbox/<version>/JetBrains Toolbox.app/Contents/jbr/Contents/Home/lib/security/cacerts
   ```

   Par exemple, si vous avez installé un IDE JetBrains sur macOS à l’emplacement par défaut, le chemin peut être le suivant :

   ```
   /Applications/JetBrains Toolbox/2022.3.4/JetBrains Toolbox.app/Contents/jbr/Contents/Home/lib/security/cacerts
   ```

------
#### [ Linux ]

   Le chemin de fichier `cacerts` pour un IDE JetBrains installé sous Linux est le suivant :

   ```
   /opt/jetbrains/jbr/lib/security/cacerts
   ```

------

1. Déterminez le certificat que vous devez importer dans le fichier `cacerts`. Le fichier de certificat possède généralement une extension de `.cer`, `.crt` ou `.der`. Si vous ne savez pas quels certificats ajouter, contactez votre administrateur réseau.

1. Importez le certificat signé dans le magasin de clés `cacerts`. Pour cela, utilisez la commande `keytool` Java. 

   1. Ouvrez une invite de commandes et saisissez la commande suivante :

      ```
      keytool -import -alias <alias> -file <certificate_file> -keystore <path_to_cacerts>
      ```

   1. Pour `<alias>` effet, vous pouvez ajouter un nom au certificat que vous importez pour y faire référence ultérieurement. Cette option est facultative.

   1. Pour `<certificate_file>`, spécifiez le chemin d’accès au certificat que vous importez. Il doit s’agir d’un chemin vers le fichier `.cer`, `.crt` ou `.der` contenant le certificat.

   1. Pour `<path_to_cacerts>`, spécifiez le chemin d’accès au fichier du magasin de clés `cacerts` que vous avez enregistré lors de l’étape 1. Il s’agit du fichier dans lequel vous importez le certificat. 

   Par exemple, si vous souhaitez importer un certificat nommé `my_certificate.cer` dans le magasin de clés `cacerts` du JRE intégré dans IntelliJ IDEA sous Windows et que vous souhaitez attribuer l’alias `myalias` au certificat, la commande peut être la suivante :

   ```
   keytool -import -alias myalias -file my_certificate.cer -keystore "C:\Program Files\JetBrains\IntelliJ IDEA 2022.3.2\jbr\bin\cacerts"
   ```

1. Au cours du processus d’importation, il vous sera demandé de saisir le mot de passe du magasin de clés. Le mot de passe par défaut pour le magasin de clés `cacerts` est `changeit`. 

1. Après avoir exécuté la commande, il vous sera demandé de faire confiance au certificat. Pour confirmer que le certificat est fiable et terminer l’importation, saisissez `yes`.

1. Vous devrez peut-être également ajouter les certificats à l’IDE lui-même, en plus du JRE. Pour plus d’informations, consultez [Certificats de serveur](https://www.jetbrains.com/help/idea/settings-tools-server-certificates.html) dans la documentation JetBrains.

#### Configuration des certificats dans Visual Studio Code
<a name="configure-proxy-VSC"></a>

Pour configurer Visual Studio Code de manière à approuver les certificats SSL ou TLS utilisés par votre serveur proxy, veillez à configurer les paramètres de proxy suivants pour votre système d’exploitation.

##### Configuration des certificats Visual Studio Code sur macOS
<a name="certs-mac"></a>

Configurez les paramètres de proxy suivants pour Visual Studio Code macOS.

##### Ajout de certificats à votre trousseau macOS
<a name="w2aac11c16c17c13c23b7b9c11b5b1b5"></a>

Si cela n’a pas encore été fait, vous devez ajouter les certificats utilisés par votre serveur proxy à votre trousseau macOS. Pour en savoir plus sur l’ajout de certificats à votre trousseau, consultez [Ajout de certificats à un trousseau à l’aide de Keychain Access sur Mac](https://support.apple.com/guide/keychain-access/add-certificates-to-a-keychain-kyca2431/mac) dans le Guide de l’utilisateur Keychain Access.

##### Installation de l' VSCode extension Mac CA
<a name="w2aac11c16c17c13c23b7b9c11b5b1b7"></a>

L'[ VSCode extension Mac CA](https://marketplace.visualstudio.com/items?itemName=linhmtran168.mac-ca-vscode) permet à Amazon Q d'accéder aux certificats que vous avez ajoutés à Keychain Access sur votre Mac. 

Pour installer l’extension :

1. Recherchez `mac-ca-vscode` dans le volet des extensions VS Code, puis choisissez **Installer**. 

1. Redémarrez VS Code.

##### Mise à des paramètres du proxy dans VS Code sur macOS
<a name="w2aac11c16c17c13c23b7b9c11b5b1b9"></a>

Mettez à jour les paramètres suivants pour vous assurer que VS Code a été configuré correctement pour votre proxy. 

1. Ouvrez les paramètres dans VS Code.

1. Entrez `proxy` dans la barre de recherche.

1. Dans le champ **Http : Proxy**, ajoutez l’URL de votre proxy.

1. Désélectionnez **Http : Proxy Strict SSL**.

1. Dans la liste déroulante **Http : Support Proxy**, choisissez **Activé**.

1. Dans la barre de recherche des paramètres, saisissez `http.experimental.systemCertificatesV2`. Sélectionnez **Http › Expérimental : certificats système V2**. 

##### Configuration des certificats dans Visual Studio Code sous Windows
<a name="certs-windows"></a>

Configurez les paramètres de proxy suivants pour Visual Studio Code sous Windows.

##### Ajout d’un certificat en tant que certificat racine fiable sous Windows
<a name="w2aac11c16c17c13c23b7b9c11b5b3b5"></a>

Si vous ne l’avez pas encore fait, ajoutez les certificats utilisés par votre serveur proxy à votre magasin Trusted Root Certification Authorities sous Windows. Pour ajouter un certificat, procédez comme suit : 

1. Ouvrez l’outil de recherche ou une fenêtre de commande Exécuter. 

1. Saisissez la commande suivante pour ouvrir l’outil Certificate Manager :

   ```
   certmgr.msc
   ```

1. Choisissez le magasin **Trusted Root Certification Authorities**.

1. Cliquez avec le bouton droit sur **Certificats**, puis choisissez **Toutes les tâches**, **Importer…**

1. Suivez les instructions données pour importer votre certificat de proxy.

1. Après avoir importé votre certificat, confirmez qu’il a été ajouté. 

   Dans le magasin **Autorités de certification racine approuvées**, double-cliquez sur **Certificats**. Cliquez avec le bouton droit sur le certificat que vous avez ajouté et sélectionnez **Propriétés**. Sous **Objectifs du certificat**, l’option **Activer tous les objectifs de ce certificat** doit être sélectionnée.

##### Installez l'extension Win-CA VSCode
<a name="w2aac11c16c17c13c23b7b9c11b5b3b7"></a>

L'[ VSCode extension Win-CA](https://marketplace.visualstudio.com/items?itemName=ukoloff.win-ca) permet à Amazon Q d'accéder aux certificats que vous avez ajoutés aux certificats racine sécurisés sous Windows. 

Pour installer l’extension :

1. Recherchez `win-ca ` dans le volet des paramètres VS Code.

1. Dans la liste déroulante **Injecter**, choisissez **Ajouter**.

##### Mise à jour des paramètres du proxy dans VS Code sous Windows
<a name="w2aac11c16c17c13c23b7b9c11b5b3b9"></a>

Mettez à jour les paramètres suivants pour vous assurer que VS Code a été configuré correctement pour votre proxy. 

1. Ouvrez les paramètres dans VS Code.

1. Entrez `proxy` dans la barre de recherche.

1. Dans le champ **Http : Proxy**, ajoutez l’URL de votre proxy.

1. Désélectionnez **Http : Proxy Strict SSL**.

1. Dans la liste déroulante **Http : Support Proxy**, choisissez **Activé**.

1. Dans la barre de recherche des paramètres, saisissez `http.experimental.systemCertificatesV2`. Sélectionnez **Http › Expérimental : certificats système V2**. 

1. Redémarrez VS Code.

### Autorisation de l’accès à Amazon S3
<a name="allowlist-s3-bucket"></a>

Au cours d’une transformation, Amazon Q charge votre code dans un compartiment Amazon S3 appartenant au service. Si votre réseau ou votre organisation n’a pas configuré l’accès à Amazon S3, Amazon Q n’est pas en mesure de charger votre projet. 

Pour qu’Amazon Q puisse charger votre projet, assurez-vous que la configuration de votre proxy et les autres composants réseau, tels que les politiques de prévention contre la perte de données (DLP), sont configurés de manière à autoriser l’accès à Amazon S3. Vous devrez peut-être également autoriser le compartiment Amazon S3 dans lequel Amazon Q charge votre projet. Pour de plus amples informations, veuillez consulter [Compartiment Amazon S3 URLs et ARNs liste d'autorisation](firewall.md#data-perimeters). 

Si vous transformez un projet de grande envergure, les politiques DLP ou d’autres composants réseau peuvent entraîner des retards et empêcher un chargement réussi s’ils ne sont pas configurés de façon à autoriser le compartiment Amazon S3. Si vous choisissez de ne pas autoriser le compartiment, vous devrez peut-être transformer un projet plus petit afin qu’Amazon Q puisse le télécharger.

## Pourquoi mes commandes Maven échouent-elles ?
<a name="maven-commands-failing"></a>

Vous trouverez ci-dessous des problèmes de Maven configuration que vous pourriez rencontrer dans JetBrains et Visual Studio Code IDEs. Si vous résolvez les problèmes et que vous retrouvez toujours des erreurs Maven, il se peut qu’il y ait un problème avec votre projet. Utilisez les informations contenues dans les journaux d’erreurs pour résoudre tout problème lié à votre projet, puis réessayez de le transformer. 

### Mise à jour de la configuration Maven dans JetBrains
<a name="jetbrains"></a>

Si une transformation échoue dans JetBrains en raison de problèmes de commande Maven, les journaux d’erreurs apparaissent dans l’onglet **Exécuter**. Utilisez les informations des journaux pour résoudre le problème. Voici quelques problèmes que vous devrez peut-être résoudre : 
+ Assurez-vous que votre chemin d’accès d’origine Maven est défini sur **Bundled**. Dans la boîte de dialogue **Paramètres**, développez la section **Création, exécution, déploiement**. Développez la section **Outils de création**, puis développez **Maven**. Dans la liste déroulante du **chemin d’accès d’origine Maven**, choisissez **Bundled**. 
+ Assurez-vous que l’environnement d’exécution Java (JRE) utilise le JDK de votre projet. Dans la boîte de dialogue **Paramètres**, développez la section **Création, exécution, déploiement**. Développez **Maven** et choisissez **Runner**. Dans la liste déroulante **JRE**, choisissez **Utiliser le JDK du projet**. 
+ Vérifiez que Maven est activé. Accédez à **Paramètres** et choisissez **Plug-ins**. Recherchez Maven et choisissez le plug-in Maven. Si le bouton **Activer** s’affiche, choisissez-le pour activer Maven. 

### Mise à jour de la configuration Maven dans Visual Studio Code
<a name="vscode"></a>

Si une transformation échoue dans VS Code en raison de problèmes de commande Maven, un fichier texte contenant les journaux d’erreurs s’ouvre dans un nouvel onglet. Utilisez les informations des journaux pour résoudre le problème.

Assurez-vous de configurer l’une des options suivantes : 
+ Votre projet contient un encapsuleur Maven dans le dossier racine du projet
+ Une version de Maven compatible avec Amazon Q est disponible sur votre `PATH`

Pour de plus amples informations, consultez [Comment ajouter Maven à mon `PATH` ?](#add-maven-to-path). 

## Comment ajouter Maven à mon `PATH` ?
<a name="add-maven-to-path"></a>

Pour transformer votre code dans VS Code sans utiliser d’encapsuleur Maven, vous devez l’installer Maven et l’ajouter à votre variable `PATH`. 

Pour vérifier si Maven a déjà été installé correctement, exécutez `mvn -v` dans un nouveau terminal du système d’exploitation en dehors de Visual Studio Code. Vous devriez voir une sortie avec votre version de Maven.

Si vous obtenez une sortie dans votre terminal Visual Studio Code, mais pas dans le terminal de votre système d’exploitation, ou si la commande n’est pas trouvée, vous devez ajouter Maven à votre `PATH`.

 Pour ajouter Maven à votre `PATH`, suivez les instructions de votre machine.

------
#### [ macOS ]

Pour l’ajouter Maven à votre `PATH` macOS, procédez comme suit.

1. Localisez votre répertoire d’installation Maven ou le dossier dans lequel vous avez installé Maven, puis enregistrez le chemin d’accès à ce dossier.

1. Ouvrez le fichier de configuration de votre shell dans l’éditeur de votre choix. Pour les versions récentes de macOS, le shell par défaut est `zsh` et le fichier de configuration par défaut se trouve à l’adresse `~/.zshrc`. 

   Ajoutez la ligne suivante au fichier de configuration. Définissez la valeur de `M2_HOME` sur le chemin que vous avez enregistré à l’étape 1 :

   ```
   export M2_HOME="your Maven installation directory"
   export PATH="${M2_HOME}/bin:${PATH}"
   ```

   Ces commandes rendent la commande `mvn` disponible dans tous les terminaux.

1. Fermez toutes les fenêtres du terminal du système d’exploitation et quittez toutes les instances Visual Studio Code.

1. Pour vérifier que Maven a été ajouté à votre `PATH`, ouvrez un nouveau terminal de système d’exploitation et exécutez la commande suivante :

   ```
   mvn -v
   ```

   Vous devriez voir une sortie avec votre version de Maven.

1. Après avoir vu votre sortie Maven, redémarrez Visual Studio Code. Vous devrez peut-être également redémarrer votre ordinateur. Ouvrez un nouveau terminal Visual Studio Code et exécutez les commandes suivantes : 

   ```
   mvn -v
   ```

   La sortie doit être identique à celle de l’étape 4. Si le résultat Visual Studio Code est différent, essayez ce qui suit pour vous assurer que votre configuration est correcte :
   + Vérifiez votre variable `PATH` dans Visual Studio Code. Une extension IDE est peut-être en train de modifier le `PATH`, afin qu’il soit différent de votre variable locale `PATH`. Désinstallez l’extension pour la supprimer de votre `PATH`.
   + Vérifiez votre shell par défaut dans Visual Studio Code. S’il est défini sur une valeur autre que `zsh`, répétez ces étapes pour votre shell.

------
#### [ Windows ]

Pour ajouter Maven à votre `PATH` Windows, exécutez les étapes suivantes : 

1. Localisez votre répertoire d’installation Maven ou le dossier dans lequel vous avez installé Maven, puis enregistrez le chemin d’accès à ce dossier.

1. Ouvrez la fenêtre des variables d’environnement :

   1. Cliquez sur le bouton Windows pour ouvrir la barre de recherche.

   1. Saisissez `Edit environment variables for your account` et procédez à votre sélection.

1. Dans la fenêtre **Variables d’environnement**, recherchez la variable Path. Si vous avez déjà une variable Path, choisissez **Modifier...** pour la mettre à jour. Si aucune variable de chemin n’apparaît, choisissez **Nouveau...** pour en ajouter une. 

1. Dans la fenêtre **Modifier la variable d’environnement** qui apparaît, double-cliquez sur le chemin existant pour le modifier, ou choisissez **Nouveau** pour ajouter une nouvelle entrée de chemin.

   Remplacez l’entrée de chemin Maven existante par le chemin que vous avez enregistré à l’étape 1 ou ajoutez le chemin en tant que nouvelle entrée. À la fin du chemin, ajoutez `\bin` comme suffixe, comme dans l’exemple suivant :

   ```
   C:\Users\yourusername\Downloads\apache-maven-3.9.6-bin\apache-maven-3.9.6\bin
   ```

1. Cliquez sur **OK** pour enregistrer le chemin d’accès, puis de nouveau sur **OK** dans la fenêtre **Variables d’environnement**.

1. Ouvrez une nouvelle invite de commande et exécutez la commande suivante :

   ```
   mvn -v
   ```

   Vous devriez voir une sortie avec votre version de Maven.

------

## Pourquoi Amazon Q ne parvient-il pas à créer mon code ?
<a name="build-fail"></a>

Si la transformation échoue alors qu’Amazon Q crée votre code, il est possible que votre projet ne soit pas configuré correctement pour l’environnement dans lequel Amazon Q génère votre code. Vous devrez peut-être mettre à jour la configuration de votre build ou l’implémentation du code.

Consultez la sortie du journal de création fournie par Amazon Q pour déterminer si vous pouvez apporter des modifications à votre projet. Voici quelques problèmes courants susceptibles d’empêcher Amazon Q de créer votre code. 

### Suppression des chemins absolus dans le fichier pom.xml
<a name="remove-absolute-path"></a>

Si votre fichier pom.xml contient un chemin absolu, Amazon Q ne sera pas en mesure de trouver les fichiers appropriés et, par conséquent, il se peut qu’il ne soit pas en mesure de créer votre code.

Voici un exemple de chemin absolu que vous pourriez avoir dans votre fichier `pom.xml` :

```
<toolspath>
    <path>/Library/Java/JavaVirtualMachines/jdk-11.0.11.jdk/Contents/Home/lib/tools.jar</path>
</toolspath>
```

Au lieu d’utiliser un chemin absolu, vous pouvez créer un chemin relatif à l’aide d’un pointeur. Voici un exemple de la façon dont vous pouvez remplacer le chemin absolu précédent par un chemin relatif :

```
<toolspath>
    <path>${java.home}/../lib/tools.jar</path>
</toolspath>
```

### Suppression des bases de données locales ou externes dans les tests unitaires
<a name="remove-external-databases"></a>

Amazon Q exécute tous les tests unitaires de votre projet lors de la génération de votre code. Si un test unitaire appelle une base de données locale ou externe, Amazon Q n’aura pas accès à la base de données, ce qui entraînera l’échec de la création. Pour éviter l’échec de la création, vous devez soit supprimer l’appel de base de données du test unitaire, soit supprimer le test unitaire avant de soumettre la transformation. 

## Pourquoi ma transformation a-t-elle échoué au bout de 55 minutes ?
<a name="build-time-limit"></a>

Si votre tâche de transformation de code échoue au bout de 55 minutes, le temps de création de votre code dépasse probablement le délai de création. Il y a actuellement une limite de temps de 55 minutes pour créer votre code. 

Si votre temps de création local prend 55 minutes ou plus, réduisez le temps de création de votre projet pour transformer votre code. Si votre création locale est plus rapide que la création avec la transformation de code, vérifiez que votre projet ne comporte pas de tâches susceptibles d’échouer ou de prendre plus de temps dans un autre environnement. Envisagez de désactiver les scénarios de test de longue durée. Envisagez également d’utiliser des délais d’expiration pour les tentatives d’accès à des ressources qui pourraient ne pas être disponibles dans l’environnement IDE sécurisé ou sur Internet. 

## Pourquoi ne puis-je pas télécharger mon code transformé ?
<a name="download-code-fail"></a>

Si vous ne parvenez pas à télécharger votre code une fois la transformation terminée, cela peut être dû à l’un des problèmes suivants. Consultez la rubrique correspondant à l’erreur que vous voyez sur Amazon Q. 

**Topics**
+ [Réduire la taille des projets](#reduce-project-size-output)
+ [Téléchargement du fichier comparatif du code dans les 30 jours](#download-30-hrs)
+ [Configuration des paramètres du proxy dans votre IDE](#configure-proxy-download)
+ [Suppression des caractères génériques dans les paramètres du proxy JetBrains](#remove-wildcard)

### Réduire la taille des projets
<a name="reduce-project-size-output"></a>

Une fois la transformation terminée, Amazon Q génère un artefact de sortie contenant une différence avec votre code mis à niveau et un résumé de la transformation contenant des informations sur les modifications apportées. L’artefact de sortie doit être inférieur ou égal à 1 Go pour que l’IDE puisse le télécharger. 

Si l’artefact de sortie dépasse la limite, vous ne pourrez pas télécharger le code mis à niveau ni le résumé de la transformation. Essayez de transformer un projet plus petit pour éviter un artefact de sortie volumineux. Si le problème persiste, contactez Support. Pour plus d'informations sur la prise Support de contact avec Amazon Q, consultez[Utilisation d’Amazon Q Developer pour discuter avec Support](support-chat.md).

### Téléchargement du fichier comparatif du code dans les 30 jours
<a name="download-30-hrs"></a>

Le fichier comparatif contenant votre code mis à niveau n’est disponible que pendant 30 jours après la fin de la transformation. Si plus de 30 jours se sont écoulés depuis la fin de la transformation, redémarrez cette dernière pour télécharger le fichier comparatif.

### Configuration des paramètres du proxy dans votre IDE
<a name="configure-proxy-download"></a>

Amazon Q télécharge votre code mis à niveau depuis un compartiment Amazon S3 appartenant au service. Une partie du processus de téléchargement implique l’utilisation de certificats SSL ou TLS pour établir la communication entre Amazon S3 et votre IDE. Si vous utilisez un serveur proxy, les certificats SSL ou TLS utilisés par votre serveur proxy doivent être fiables, sinon Amazon Q ne pourra pas charger votre projet.

Pour télécharger votre code, vous devrez peut-être configurer votre IDE pour qu’il fasse confiance aux certificats ou mettre à jour d’autres paramètres de proxy. Pour en savoir plus sur la mise à jour de vos paramètres de proxy, consultez [Configuration des paramètres du proxy dans votre IDE](#configure-proxy).

### Suppression des caractères génériques dans les paramètres du proxy JetBrains
<a name="remove-wildcard"></a>

Si vous avez configuré les paramètres de proxy dans votre IDE JetBrains, le message d’erreur suivant peut s’afficher lors du téléchargement de votre code mis à niveau : 

```
software.amazon.awssdk.core.exception.SdkClientException: 
Unable to execute HTTP request: Dangling meta character '*' near index 0
```

Cela est probablement dû à la présence d’un caractère générique (\$1) dans le champ **Pas de proxy pour** des paramètres de proxy de votre IDE. Le kit SDK Java utilisé par Amazon Q ne prend pas en charge les entrées génériques dans ce champ. 

Pour télécharger votre code, supprimez tous les caractères génériques du champ **Aucun proxy pour**, puis redémarrez votre IDE. Si vous devez spécifier des hôtes qui doivent contourner le proxy, utilisez une expression régulière au lieu d’un caractère générique. Pour mettre à jour les paramètres du proxy dans votre JetBrains IDE, consultez la section [Proxy HTTP](https://www.jetbrains.com/help/idea/settings-http-proxy.html) dans la JetBrains documentation.

## Comment accéder aux journaux de transformation du code ?
<a name="logs"></a>

### Accès aux journaux dans JetBrains
<a name="jetbrains-logs"></a>

Pour en savoir plus sur l’accès aux fichiers journaux JetBrains, consultez [Localisation des fichiers journaux IDE](https://intellij-support.jetbrains.com/hc/en-us/articles/207241085-Locating-IDE-log-files) dans la documentation de JetBrains. 

Pour trouver les journaux émis par Amazon Q dans JetBrains, recherchez la chaîne suivante dans les journaux IDE :

```
software.aws.toolkits.jetbrains.services.codemodernizer
```

Les journaux de transformation du code commencent par la chaîne précédente. Les journaux générés par Maven sont affichés dans l’onglet **Exécuter** et comportent la chaîne précédente avant et après l’entrée du journal. 

### Accès aux journaux dans Visual Studio Code
<a name="vsc-logs"></a>

Pour rechercher les journaux émis par Amazon Q dans VS Code, exécutez les étapes suivantes :

1. Choisissez **Afficher** dans la barre de navigation supérieure, puis sélectionnez **Palette de commandes**.

1. Recherchez `Amazon Q: View Logs` dans la palette de commandes qui s’affiche.

1. Les journaux s’ouvrent dans l’IDE. Pour rechercher dans les fichiers journaux de la `CodeTransformation`, utilisez `CMD + F` ou `Control + F`. 

Les connexions liées à la transformation du code dans VS Code sont préfixées par `CodeTransformation:`. Voici un exemple de journal généré dans VS Code pour une erreur de copie des dépendances Maven :

```
2024-02-12 11:29:16 [ERROR]: CodeTransformation: Error in running Maven copy-dependencies command mvn = /bin/sh: mvn: command not found
```

## Comment trouver l’ID de ma tâche de transformation ?
<a name="job-id"></a>

### Recherche de l’ID de tâche dans JetBrains
<a name="jetbrains"></a>

Pour trouver un ID de tâche de transformation dans JetBrains, accédez à l’onglet **Détails de la transformation** dans le **Hub de transformation**, puis choisissez l’icône **Afficher le statut de la tâche** (horloge). 

### Recherche de l’ID de tâche dans Visual Studio Code
<a name="vs-code"></a>

Pour rechercher un ID de tâche de transformation dans VS Code, accédez au **Hub de transformation**, puis choisissez l’icône **Afficher le statut de la tâche** (horloge). 