欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

非maven項(xiàng)目快速轉(zhuǎn)換為maven項(xiàng)目的方法步驟

 更新時(shí)間:2024年01月15日 15:29:28   作者:假女吖?  
時(shí)候我們導(dǎo)入的項(xiàng)目并不是有maven來(lái)管理依賴的,而是要手動(dòng)添加jar包,比較麻煩,本文主要介紹了非maven項(xiàng)目快速轉(zhuǎn)換為maven項(xiàng)目的方法步驟,具有一定的參考價(jià)值,感興趣的可以了解一下

背景

公司有個(gè)很舊的項(xiàng)目,無(wú)法通過(guò)提交gitlab來(lái)實(shí)現(xiàn)自動(dòng)構(gòu)建docker鏡像(當(dāng)然肯定可以通過(guò)其他的方式來(lái)構(gòu)建鏡像(這里可能沒(méi)有研究所以不太清楚),但是我當(dāng)時(shí)的想法就是把項(xiàng)目轉(zhuǎn)換為maven的,然后通過(guò)配置plugin來(lái)實(shí)現(xiàn))。

問(wèn)題

因?yàn)榕f的項(xiàng)目是spring的項(xiàng)目可想而知是很多的jar包,并且還有一些奇奇怪怪的jar包(可能是第三方的,在中央庫(kù)根本就找不到)。這是很頭疼的,嘗試去找了一個(gè)每個(gè)jarGAV,因?yàn)樘嗔司头艞壛恕H缓缶拖胧欠衲苤苯油ㄟ^(guò)配置方式來(lái)解決這個(gè)問(wèn)題,快速把所有jar引入到項(xiàng)目中,并且可以使他在maven編譯的時(shí)候也可以正常編譯(雖然在idea中可以運(yùn)行是因?yàn)槲覀兣渲昧?code>libraries所有才能正常運(yùn)行)。

解決方式

方法只適用與jdk1.8及以下,因?yàn)?code>1.8以上他取消了rt.jar這個(gè)基礎(chǔ)包。

<plugin>
    <!--使用maven-compiler-plugin來(lái)解決編譯時(shí)無(wú)法找到第三方依賴的問(wèn)題-->
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <!-- 指定源代碼的字符編碼為UTF-8。-->
        <encoding>UTF-8</encoding>
        <!-- 用于指定傳遞給Java編譯器的參數(shù)。-->
        <compilerArgs>
            <!--一般不開(kāi)調(diào)試的時(shí)候需要用到 這三個(gè)一般不開(kāi)啟 但是調(diào)試的時(shí)候可以通到-->
            <!--啟用詳細(xì)輸出,顯示編譯過(guò)程的詳細(xì)信息。-->
            <!--<arg>-verbose</arg>-->
            <!--啟用unchecked警告,用于檢測(cè)未經(jīng)檢查的操作。-->
            <!--<arg>-Xlint:unchecked</arg>-->
            <!--啟用已過(guò)時(shí)元素使用警告,用于檢測(cè)已經(jīng)不推薦使用的API。-->
            <!--<arg>-Xlint:deprecation</arg>-->
            <!--bootclasspath 引導(dǎo)類路徑。引導(dǎo)類路徑是Java編譯器在編譯時(shí)使用的類路徑,其中包含了Java標(biāo)準(zhǔn)庫(kù)的核心類 其實(shí)可以不指定因?yàn)閖dk11我測(cè)試的時(shí)候沒(méi)找到rt.jar 所以說(shuō)只支持jdk1.8及一下 這里如果這個(gè)的可以補(bǔ)充-->
            <arg>-bootclasspath</arg>
            <arg>${env.JAVA_HOME}/jre/lib/rt.jar</arg>
            <!--重點(diǎn)!
				extdirs 擴(kuò)展目錄允許你添加額外的類庫(kù)目錄,這里包括了Web應(yīng)用程序的lib目錄和Java運(yùn)行時(shí)庫(kù)的ext目錄。
				我們把自己的第三方j(luò)ar包通過(guò)擴(kuò)展類的形式讓我們的編譯器可以識(shí)別到。從而使得maven能夠編譯成功。
			-->
            <arg>-extdirs</arg>
            <arg>
                ${project.basedir}/src/main/webapp/WEB-INF/lib${path.separator}${env.JAVA_HOME}/jre/lib/ext
            </arg>
        </compilerArgs>
    </configuration>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>3.2.2</version>
    <configuration>
       	<!--用于補(bǔ)充Web應(yīng)用程序的資源文件。-->
        <webResources>
            <webResource>
                <!--用于在部署后可以讓我們的tomcat識(shí)別到具有必要的第三方依賴-->
                <directory>${pom.basedir}/src/main/webapp/WEB-INF/lib/</directory>
                <!--將資源復(fù)制到指定目錄-->
                <targetPath>WEB-INF/lib/</targetPath>
              	<!--包含那些文件-->
                <includes>
                    <include>**/*.jar</include>
                </includes>
            </webResource>
        </webResources>
    </configuration>
</plugin>

總結(jié)

maven-compiler-plugin:解決在編譯過(guò)程中識(shí)別不到第三方依賴的問(wèn)題

maven-war-plugin:解決在部署后可以讓第三方包被tomcat識(shí)別

使用這兩個(gè)插件讓我們可以無(wú)需一個(gè)一個(gè)的添加denpendency,之后的有再補(bǔ)充的jar包,可以通過(guò)denpendency交給maven來(lái)管理。

注意

idea工具中你可能還需要將webapp/WEB-INF/lib/添加到libraries中,因?yàn)?code>idea默認(rèn)不是使用maven來(lái)編譯程序的。

到此這篇關(guān)于非maven項(xiàng)目快速轉(zhuǎn)換為maven項(xiàng)目的方法步驟的文章就介紹到這了,更多相關(guān)非maven轉(zhuǎn)為maven項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深度解析Java中CountDownLatch的原理

    深度解析Java中CountDownLatch的原理

    在高并發(fā)編程中,AbstractQueuedSynchronizer(簡(jiǎn)稱AQS)抽象的隊(duì)列同步器是我們必須掌握的,本文將通過(guò)CountDownLatch底層實(shí)現(xiàn)原理來(lái)了解AQS共享鎖模式的實(shí)現(xiàn)原理,快跟隨小編一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • SpringBoot注入靜態(tài)屬性或靜態(tài)對(duì)象的方法

    SpringBoot注入靜態(tài)屬性或靜態(tài)對(duì)象的方法

    我們?cè)谑褂肧pringBoot為一些靜態(tài)屬性或者靜態(tài)對(duì)象注入時(shí)會(huì)發(fā)現(xiàn)注入不成功,我們可以以下這幾種方式把需要注入的值注入到靜態(tài)屬性中,感興趣的朋友一起看下
    2024-12-12
  • 如何使用兩個(gè)棧實(shí)現(xiàn)隊(duì)列Java

    如何使用兩個(gè)棧實(shí)現(xiàn)隊(duì)列Java

    這篇文章主要介紹了如何使用兩個(gè)棧實(shí)現(xiàn)隊(duì)列Java,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • BloomFilter如何快速檢查用戶名重復(fù)

    BloomFilter如何快速檢查用戶名重復(fù)

    這篇文章主要介紹了BloomFilter如何快速檢查用戶名重復(fù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • sprintboot使用spring-security包,緩存內(nèi)存與redis共存方式

    sprintboot使用spring-security包,緩存內(nèi)存與redis共存方式

    這篇文章主要介紹了sprintboot使用spring-security包,緩存內(nèi)存與redis共存方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • JAVA參數(shù)傳遞方式實(shí)例淺析【按值傳遞與引用傳遞區(qū)別】

    JAVA參數(shù)傳遞方式實(shí)例淺析【按值傳遞與引用傳遞區(qū)別】

    這篇文章主要介紹了JAVA參數(shù)傳遞方式,結(jié)合實(shí)例形式分析了java按值傳遞與引用傳遞區(qū)別及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • Java單例模式簡(jiǎn)單介紹

    Java單例模式簡(jiǎn)單介紹

    這篇文章主要為大家詳細(xì)介紹了Java單例模式簡(jiǎn)單的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 淺析Java中SimpleDateFormat為什么是線程不安全的

    淺析Java中SimpleDateFormat為什么是線程不安全的

    SimpleDateFormat是Java中用于日期時(shí)間格式化的一個(gè)類,它提供了對(duì)日期的解析和格式化能力,本文主要來(lái)和大家一起探討一下SimpleDateFormat為什么是線程不安全的,感興趣的可以了解下
    2024-02-02
  • 簡(jiǎn)單總結(jié)單例模式的4種寫法

    簡(jiǎn)單總結(jié)單例模式的4種寫法

    今天帶大家學(xué)習(xí)java的相關(guān)知識(shí),文章圍繞著單例模式的4種寫法展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 解決mybatis 數(shù)據(jù)庫(kù)date 與 java中Date類型映射問(wèn)題

    解決mybatis 數(shù)據(jù)庫(kù)date 與 java中Date類型映射問(wèn)題

    這篇文章主要介紹了解決mybatis 數(shù)據(jù)庫(kù)date 與 java中Date類型映射問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)吧
    2020-11-11

最新評(píng)論