最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java項目全面升級轉(zhuǎn)化經(jīng)驗(涉及JDK、Spring?boot版本及依賴管理架構(gòu))

 更新時間:2025年09月12日 11:11:28   作者:Hi-Jimmy  
在軟件開發(fā)領(lǐng)域,項目升級是一個必然的過程,隨著技術(shù)的不斷進(jìn)步和業(yè)務(wù)需求的變化,對于舊項目的升級和優(yōu)化已成為許多企業(yè)必須面對的問題,這篇文章主要介紹了Java項目全面升級轉(zhuǎn)化的相關(guān)資料,包括JDK、Spring?boot版本及依賴管理架構(gòu),需要的朋友可以參考下

這段時間有個艱巨的任務(wù),把早期項目改造為新版本架構(gòu),涉及到JDK版本、Spring boot版本以及依賴管理架構(gòu)改造。

需求

  • 將依賴管理從Gradle 轉(zhuǎn)換為 Maven

  • 將 JDK 1.8 版本升級到 17

  • 將Spring Boot 2.7.13升級到 3.5.0

計劃

為了更順暢的完成以上改造,大體做了以下計劃:

步驟內(nèi)容
1Gradle 轉(zhuǎn)換為 Maven 構(gòu)建
2升級 JDK1.8 版本到 17
3升級 Spring Boot 2.7.13到 3.5.0
4源碼兼容性調(diào)整
5測試和驗證

前置準(zhǔn)備

  1. 確保項目可以正常構(gòu)建并運行
  2. 確保項目依賴完整并已去除無用依賴
  3. 確認(rèn)好項目的依賴各類版本

一、Gradle 轉(zhuǎn)換為 Maven

依賴管理作為第一步,因為相比之下改動最小,基本不牽扯代碼修改。同時,最開始切換Maven,也為之后升級過程中可能存在的依賴版本修改做準(zhǔn)備。

1.pom轉(zhuǎn)化

  • 打開 IDEA,右鍵項目根目錄 → Add Framework Support → 勾選 Maven。
  • IDEA 會生成 pom.xml 文件。
  • 手動遷移 build.gradle 中的依賴、插件信息。

如果使用社區(qū)版Idea:
手動創(chuàng)建pom并逐一將所有build.gradle轉(zhuǎn)化為pom.xml。

2.移除所有g(shù)radle相關(guān)文件

  • build.gradle / build.gradle.kts
  • settings.gradle
  • .gradle/
  • gradlew、gradlew.bat

3.移除.idea目錄并重啟idea

4.關(guān)鍵步驟

在idea中右鍵根目錄pom.xml文件選擇“添加項目為maven”。

注意:
由于maven與gradle的很多寫法不同,在實際加載依賴時會提示各種錯誤,一般需要額外注意,對指定目錄依賴的引用,并注意對Lombok的編譯時排除的設(shè)定。

指定目錄依賴的引用
例如:

<dependency>
    <groupId>com.local</groupId>
    <artifactId>opencv</artifactId>
    <version>453</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/src/main/resources/lib/opencv/opencv-453.jar</systemPath>
</dependency>

Lombok的編譯時排除

例如:

<build>
    <plugins>
        <!-- 編譯插件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.11.0</version>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                        <version>${lombok.version}</version>
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
    </plugins>
</build>

二、升級JDK

1.修改項目SDK版本

2.修改平臺SDK版本

3.修改JDK版本變化帶來的語法區(qū)別

一些寫法上的改變,如:

  • 一些廢棄的寫法
  • 一些var類型的聲明
  • 依賴版本的變化
    需要按需調(diào)整,不再累述。

三、Spring boot升級

相比SDK版本變化,Spring boot的升級帶來的代碼修改是最大的。

1.解決版本依賴問題

注意:版本的取舍很重要,哪些需要升級,哪些需要保留低版本,需要根據(jù)項目情況判斷,一般以spring boot為核心的組件都應(yīng)該做升級

2.解決新版本寫法

例如:

javax.xml.bind → jakarta.xml.bind

3.解決缺失依賴問題

升級后,一些原有的依賴可能會被舍棄,需要手動加上,如:
zip4j 2.x 版本中,包結(jié)構(gòu)已完全重構(gòu),net.lingala.zip4j.core.* 目錄被移除。如果你升級了 zip4j 到 2.x,就找不到這個類。

四、代碼兼容性調(diào)整

遷移過程中出現(xiàn)的報錯和異常:

1.xml報錯

自 JDK 9 開始,javax.xml.bind 所在的 JAXB(Java Architecture for XML Binding)模塊被移出 JDK 默認(rèn)類庫,在 JDK 11 及更高版本中已徹底移除。

import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;

改為:

import jakarta.xml.bind.JAXBContext;
import jakarta.xml.bind.Marshaller;

2.升級mybitasPlus后,分頁報錯

page.setDesc()//不存在該方法
page.setAsc() //不存在

改為:

page.addOrder(OrderItem.desc(...))
page.addOrder(OrderItem.asc(...))

3.已經(jīng)被棄用的CommonsMultipartFile

import org.springframework.web.multipart.commons.CommonsMultipartFile;

改為:

import org.springframework.web.multipart.MultipartFile;

4.已經(jīng)棄用的Base64Utils

import org.springframework.util.Base64Utils;

byte[] bytes = Base64Utils.decodeFromString(pptImage);//解碼

改為:

import java.util.Base64;
byte[] bytes = Base64.getDecoder().decode(pptImage);//解碼

5.javax→jakarta

大部分隸屬javax的類庫都改為jakarta,如::

import javax.websocket.*;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;

改為:

import jakarta.websocket.*;
import jakarta.websocket.server.PathParam;
import jakarta.websocket.server.ServerEndpoint;

6.mybatis字段相關(guān)修改

@TableField(strategy = FieldStrategy.IGNORED)

改為:

@TableField(insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED)

五、測試與驗證

1.逐一build每個項目

務(wù)必使用maven重新導(dǎo)入所有依賴,并重新進(jìn)行build操作,如果這個過程無誤,則證明本次升級成功,如有問題,按需解決

2.依賴關(guān)系確認(rèn)

還需確認(rèn)轉(zhuǎn)化后的項目的樹狀結(jié)構(gòu)是否與之前一致,即父子關(guān)系不能變

3.運行項目

運行項目進(jìn)行開發(fā)環(huán)境測試,確保模塊正常

4.打包測試

打包進(jìn)行測試環(huán)境測試,以確保升級后功能可正常跑通

總結(jié)

到此這篇關(guān)于Java項目全面升級轉(zhuǎn)化經(jīng)驗的文章就介紹到這了,更多相關(guān)Java項目全面升級內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java手寫簡易版HashMap的使用(存儲+查找)

    Java手寫簡易版HashMap的使用(存儲+查找)

    這篇文章主要介紹了Java手寫簡易版HashMap的使用(存儲+查找),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 淺談JAVA設(shè)計模式之代理模式

    淺談JAVA設(shè)計模式之代理模式

    這篇文章主要介紹了JAVA設(shè)計模式之代理模式的的相關(guān)資料,文中代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • Java鎖之阻塞鎖介紹和代碼實例

    Java鎖之阻塞鎖介紹和代碼實例

    這篇文章主要介紹了Java鎖之阻塞鎖介紹和代碼實例,阻塞鎖與自旋鎖不同,它改變了線程的運行狀態(tài),需要的朋友可以參考下
    2014-09-09
  • SpringBoot工程搭建打包、啟動jar包和war包的教程圖文詳解

    SpringBoot工程搭建打包、啟動jar包和war包的教程圖文詳解

    這篇文章主要介紹了SpringBoot工程搭建打包、啟動jar包和war包的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • java使用apache commons連接ftp修改ftp文件名失敗原因

    java使用apache commons連接ftp修改ftp文件名失敗原因

    這篇文章主要介紹了java使用apache commons連接ftp修改ftp文件名失敗原因解析,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • Java項目開發(fā)命名規(guī)范(動力節(jié)點Java學(xué)院整理)

    Java項目開發(fā)命名規(guī)范(動力節(jié)點Java學(xué)院整理)

    定義這個規(guī)范的目的是讓項目中所有的文檔都看起來像一個人寫的,增加可讀性,減少項目組中因為換人而帶來的損失。下面給大家分享java開發(fā)命名規(guī)范,一起看看吧
    2017-03-03
  • 使用Java高效將CSV轉(zhuǎn)換為Excel的實現(xiàn)方法

    使用Java高效將CSV轉(zhuǎn)換為Excel的實現(xiàn)方法

    在日常的數(shù)據(jù)處理和分析工作中,CSV文件因其輕量級和通用性而廣受歡迎,然而,當(dāng)我們需要進(jìn)行復(fù)雜的數(shù)據(jù)分析或利用Excel強大的圖表和公式功能時,將CSV數(shù)據(jù)轉(zhuǎn)換為Excel文件就成了開發(fā)者們常見的需求和痛點,本文將深入探討如何利用Java高效地將CSV轉(zhuǎn)換為Excel
    2025-08-08
  • SpringBoot多環(huán)境日志配置方式

    SpringBoot多環(huán)境日志配置方式

    SpringBoot?默認(rèn)使用LogBack日志系統(tǒng),默認(rèn)情況下,SpringBoot項目的日志只會在控制臺輸入,本文給大家介紹SpringBoot多環(huán)境日志配置方式,需要的朋友可以參考下
    2024-08-08
  • Spring Boot常見外部配置文件方式詳析

    Spring Boot常見外部配置文件方式詳析

    這篇文章主要給大家介紹了關(guān)于Spring Boot常見外部配置文件方式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • gRPC實踐之proto及Maven插件概念及使用詳解

    gRPC實踐之proto及Maven插件概念及使用詳解

    這篇文章主要為大家介紹了gRPC實踐之proto及Maven插件概念及使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04

最新評論

星座| 澜沧| 佛学| 陆良县| 文安县| 宽甸| 日喀则市| 偏关县| 阜阳市| 昭觉县| 通许县| 神农架林区| 民县| 苏尼特右旗| 醴陵市| 庆云县| 天津市| 马尔康县| 礼泉县| 南皮县| 玉门市| 根河市| 贵港市| 达日县| 安平县| 张家界市| 昔阳县| 巨鹿县| 会理县| 广南县| 北流市| 平度市| 华容县| 察雅县| 斗六市| 牡丹江市| 孝昌县| 射阳县| 滦南县| 安宁市| 房产|