spring boot maven 打包提示程序包xxx不存在?


原文地址:https://www.zhihu.com/question/292734760/answer/482329716

作者:VayCi
鏈接:https://www.zhihu.com/question/292734760/answer/482329716
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

為什么會提示程序包不存在呢?

你的A模塊是一個spring boot項目,創建生成的pom的中肯定是這樣的build的

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

emmm...使用了spring boot的build plugin。這時候A模塊install到倉庫的jar包是什么樣子的呢?

是的,模塊A已經按照spring boot的啟動機制調整了目錄結構,模塊B找不到模塊A的類了。

 

臨時解決方案

嘗試把模塊A的pom中build部分的spring boot plugin去掉

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

注釋掉之后,重新install模塊A,再看jar包結構

這才是一個最普通不過的jar包,這時候再去install模塊B,肯定不會報找不到程序包的錯了。

 

更好的解決方案

假如我的模塊A也是要運行的一個應用,那每次都要修改pom打兩次包嗎?

並不。再次修改模塊A的pom,改為如下配置

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

install模塊A,查看倉庫jar包。

可以看到倉庫里生成了兩個jar包。

看jar包大小很容易可以猜到。

上面是普通的jar包,下面名稱帶exec的是一個可以直接運行的spring boot的jar包。

依賴還是那個依賴,要運行就把exec拿出來java -jar!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM