

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon Q Developer 如何轉換程式碼以進行 Java 語言升級
<a name="how-CT-works"></a>

為了轉換您的程式碼，Amazon Q Developer 會產生轉換計畫，並利用該計畫來升級專案的程式碼語言版本。轉換程式碼之後，它會提供轉換摘要和檔案差異，供您在接受變更之前檢閱變更。由於 Amazon Q Developer 會進行必要的最低程度變更，讓升級後的程式碼與目標 JDK 相容，因此需要額外的轉換才能升級專案的程式庫和相依性。下列各節提供更多 Amazon Q 如何執行轉換的詳細資訊。

## 建置程式碼並建立轉換計畫
<a name="build-code-create-plan"></a>

為了要開始轉換您的程式碼，Amazon Q 會在本機上建置您的專案，並產生包含您的原始程式碼、專案相依性和建置日誌的建置成品。

產生建置成品後，Amazon Q 會在安全的建置環境中建置您的程式碼，並建立轉換計畫，該計畫會針對您要升級的專案或模組進行自訂。轉換計畫概述了 Amazon Q 將嘗試進行的特定變更，包括新的相依性版本、主要程式碼變更，以及已棄用程式碼的建議取代項目。這些變更是以程式碼的初步建置為基礎，並且可能在轉換期間變更。

## 轉換程式碼
<a name="transform-code"></a>

為了轉換您的程式碼，Amazon Q 會根據轉換計畫中提議的變更，嘗試將您的程式碼升級至目標 Java 版本。在其進行變更時，會同時在原始程式碼中重新建置並執行現有的單元測試，以反覆修正任何遇到的錯誤。JDK 可從下列原始程式碼版本升級到目標版本：
+ Java 8 到 17
+ Java 8 到 21
+ Java 11 到 17
+ Java 11 到 21
+ Java 17 到 21

Amazon Q 會進行必要的最低程度變更，讓您的程式碼與目標 Java 版本相容。一旦 Amazon Q 執行最低 JDK 升級，您就可以初始化另一次轉換來升級所有第三方相依性。或者，您可以在 YAML 檔案中指定第三方相依性及其版本，以在程式庫升級轉換期間僅升級這些相依性。

升級程式碼時，Amazon Q 會嘗試進行下列變更：
+ 根據目標 Java 版本建議更新已棄用的程式碼元件
+ 將熱門程式庫和架構升級至與目標 Java 版本相容的版本。這包括將下列程式庫和架構更新為其最新的可用主要版本：
  + Apache Commons IO 
  + Apache HttpClient 
  + bc-fips 
  + Cucumber-JVM 
  + 休眠 
  + 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 
  + 測試 

**注意**  
請勿在程式碼轉換期間關閉或關上本機電腦，因為用戶端組建需要穩定的網路連線。

## 在本機環境中建置程式碼
<a name="java-local-builds"></a>

在轉換期間，Amazon Q 會在您的本機環境中執行驗證建置。Amazon Q 會在伺服器端進行多個步驟來轉換您的程式碼。在每個步驟之後，Amazon Q 會將程式碼傳送至您的本機環境，以建置並測試其所做的變更。然後程式碼會傳回伺服器端，以繼續轉換。

本機環境中的組建可讓 Amazon Q 執行需要存取私有資源的測試，藉此協助驗證轉換後的程式碼。為了將在本機環境中建置 AI 生成程式碼所伴隨的安全風險降至最低，Amazon Q 會檢閱並更新其產生的程式碼，以解決安全疑慮。

## 檢閱轉換摘要並接受變更
<a name="review-plan-accept-changes"></a>

轉換完成後，Amazon Q 會提供轉換摘要，其中包含其所做變更的詳細資訊，包括最終建置的狀態，指出您的整個專案是否已升級。您也可以檢視建置日誌摘要，以了解導致 Amazon Q 無法在升級版本中建置程式碼的任何問題。

轉換摘要還包含轉換計畫中提議的變更與 Amazon Q 為了升級程式碼最終所做的變更之間的差異，以及不在原始計畫中的任何其他變更。

檢閱轉換摘要後，您可以在檔案差異檢視中檢視 Amazon Q 提議的變更。Amazon Q 建議的任何程式碼變更都不會影響您目前的專案檔案，直到您接受變更為止。轉換完成後，轉換後的程式碼可在 30 天內使用。

## 完成部分成功的轉換
<a name="partially-successful-transformations"></a>

根據程式碼基底的複雜性和細節而定，可能會有部分成功轉換的執行個體。這表示，Amazon Q 只能轉換專案中的特定檔案或程式碼區域。在此情況下，您必須手動更新專案的其餘程式碼，才能在更新的語言版本中建置。

為了協助轉換其餘程式碼，您可以在 IDE 中使用 Amazon Q 聊天。您可以要求 Amazon Q 檢閱部分更新的檔案，並提供新的程式碼來解決問題，例如編譯錯誤。您也可以使用[特徵開發](q-in-IDE-chat.md#develop-code)和[工作區內容](workspace-context.md)等功能，將更多專案納入內容，並一次取得多個檔案的建議。