springboot項(xiàng)目打包時提示“程序包xxx不存在,找不到符號”

springboot多包工程,在使用maven進(jìn)行打包的時候,一直提示“程序包xxx不存在,找不到符號”,但項(xiàng)目是可以正常啟動運(yùn)行的,開始一直以為是maven哪里沒有配置好導(dǎo)致的,后來才發(fā)現(xiàn)原來是springboot的maven插件導(dǎo)致的

springboot項(xiàng)目打包時提示“程序包xxx不存在,找不到符號”

項(xiàng)目結(jié)構(gòu):

xxx-parent:頂級父工程

xxx-a:子項(xiàng)目1

xxx-b:子項(xiàng)目2

xxx-c:子項(xiàng)目3

依賴關(guān)系:

a -> b -> c,從左到右,依次被依賴(c依賴b,b依賴a)

問題場景:

在使用mvn package的時候,一直提示“程序包xxx不存在,找不到符號”,開始以為是依賴的上層包沒打好,仔細(xì)檢查后發(fā)現(xiàn)都沒問題,就算將本地倉庫中的依賴包清理之后,重新install打包也還是有這個問題

原因分析:

因?yàn)橹暗膕pringmvc出現(xiàn)過類似的問題(Maven打包失敗,提示“找不到符號”),所以一開始也以為是本地倉庫的緩存所致,浪費(fèi)了好長時間,后來才發(fā)現(xiàn)原來是springboot自身的編譯插件spring-boot-maven-plugin導(dǎo)致的。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

如上,就是springboot的maven插件,用這個插件打包的Jar包可以直接運(yùn)行,但是不可依賴!

解決方案(三選一):

1、不要將此插件放到頂級父工程中,在需要打成可執(zhí)行jar的地方添加就好了,如果是需要被依賴的,就不要添加此插件(如上述案例中,就是xxx-a、xxx-b不加,xxx-c需要加);

2、在需要對外提供依賴的項(xiàng)目的pom里設(shè)置(如本項(xiàng)目的xxx-a、xxx-b),這樣設(shè)置會讓項(xiàng)目生成兩個jar:一個可執(zhí)行jar,一個可依賴的jar;

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <!-- 生成可執(zhí)行的jar的名字:xxx-exec.jar -->
                <!-- 不固定,寫成abcd都可以 -->
                <classifier>exec</classifier>
            </configuration>
        </plugin>
    </plugins>
</build>

3、在configuration中加入skip標(biāo)簽,取消生成可執(zhí)行jar;

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>
    </plugins>
</build>

最后給大家贈送一本書籍《深入淺出Spring Boot》需要的朋友可以來私信我領(lǐng)取

springboot項(xiàng)目打包時提示“程序包xxx不存在,找不到符號”
springboot項(xiàng)目打包時提示“程序包xxx不存在,找不到符號”
springboot項(xiàng)目打包時提示“程序包xxx不存在,找不到符號”

篇幅有限就不過多的介紹了需要私信我就ok了

書籍免費(fèi)獲取方式:關(guān)注然后簡信“資料”即可獲得文檔領(lǐng)取方式

同時希望大家領(lǐng)到之后不要做收藏黨!而是能夠花一些時間認(rèn)真看完文檔,讓它真正發(fā)揮出價值來。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容