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

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

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

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

需求

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

  • 將 JDK 1.8 版本升級(jí)到 17

  • 將Spring Boot 2.7.13升級(jí)到 3.5.0

計(jì)劃

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

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

前置準(zhǔn)備

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

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

依賴管理作為第一步,因?yàn)橄啾戎赂膭?dòng)最小,基本不牽扯代碼修改。同時(shí),最開(kāi)始切換Maven,也為之后升級(jí)過(guò)程中可能存在的依賴版本修改做準(zhǔn)備。

1.pom轉(zhuǎn)化

  • 打開(kāi) IDEA,右鍵項(xiàng)目根目錄 → Add Framework Support → 勾選 Maven。
  • IDEA 會(huì)生成 pom.xml 文件。
  • 手動(dòng)遷移 build.gradle 中的依賴、插件信息。

如果使用社區(qū)版Idea:
手動(dòng)創(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文件選擇“添加項(xiàng)目為maven”。

注意:
由于maven與gradle的很多寫(xiě)法不同,在實(shí)際加載依賴時(shí)會(huì)提示各種錯(cuò)誤,一般需要額外注意,對(duì)指定目錄依賴的引用,并注意對(duì)Lombok的編譯時(shí)排除的設(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的編譯時(shí)排除

例如:

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

二、升級(jí)JDK

1.修改項(xiàng)目SDK版本

2.修改平臺(tái)SDK版本

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

一些寫(xiě)法上的改變,如:

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

三、Spring boot升級(jí)

相比SDK版本變化,Spring boot的升級(jí)帶來(lái)的代碼修改是最大的。

1.解決版本依賴問(wèn)題

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

2.解決新版本寫(xiě)法

例如:

javax.xml.bind → jakarta.xml.bind

3.解決缺失依賴問(wèn)題

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

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

遷移過(guò)程中出現(xiàn)的報(bào)錯(cuò)和異常:

1.xml報(bào)錯(cuò)

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

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

改為:

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

2.升級(jí)mybitasPlus后,分頁(yè)報(bào)錯(cuò)

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的類庫(kù)都改為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)

五、測(cè)試與驗(yàn)證

1.逐一build每個(gè)項(xiàng)目

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

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

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

3.運(yùn)行項(xiàng)目

運(yùn)行項(xiàng)目進(jìn)行開(kāi)發(fā)環(huán)境測(cè)試,確保模塊正常

4.打包測(cè)試

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

總結(jié)

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

相關(guān)文章

  • Java手寫(xiě)簡(jiǎn)易版HashMap的使用(存儲(chǔ)+查找)

    Java手寫(xiě)簡(jiǎn)易版HashMap的使用(存儲(chǔ)+查找)

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

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

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

    Java鎖之阻塞鎖介紹和代碼實(shí)例

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

    SpringBoot工程搭建打包、啟動(dòng)jar包和war包的教程圖文詳解

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

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

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

    Java項(xiàng)目開(kāi)發(fā)命名規(guī)范(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)

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

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

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

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

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

    Spring Boot常見(jiàn)外部配置文件方式詳析

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

    gRPC實(shí)踐之proto及Maven插件概念及使用詳解

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

最新評(píng)論

高密市| 民乐县| 始兴县| 漾濞| 南宫市| 长沙市| 聊城市| 津市市| 义乌市| 利川市| 建瓯市| 北碚区| 阜新| 蒲城县| 历史| 芜湖县| 三门县| 交口县| 中超| 墨脱县| 昆明市| 扶风县| 正宁县| 阜城县| 革吉县| 巴塘县| 北川| 炎陵县| 贡嘎县| 汪清县| 天峨县| 偃师市| 阳东县| 夏河县| 肥东县| 南投市| 丹东市| 大厂| 习水县| 鄂伦春自治旗| 绵阳市|