在SpringBoot多模塊項(xiàng)目中,如果使用Maven進(jìn)行包管理,有時(shí)候會(huì)提示“程序包xxx不存在,找不到符號”錯(cuò)誤,為什么會(huì)出現(xiàn)這個(gè)錯(cuò)誤,我們下面先從maven打包的方式進(jìn)行說起。
1. maven打包方式
maven打包有三種方式 pom、jar、war。在pom.xml 文件中聲明的方式分別如下:
<!-- 1. pom方式 -->
<packaging>pom</packaging>`
<!-- 2. jar方式 -->
<packaging>jar</packaging>
<!-- 3. war方式 -->
<packaging>war</packaging>
以上三種打包方式不同出現(xiàn)在同一個(gè) pom 文件中。
pom:用在父級工程或聚合工程中,必須指明打包方式為pom。子module可繼承父工程依賴。
jar:工程的默認(rèn)打包方式。
war:將會(huì)打包成war。
2. maven打包插件
<!-- 1. maven 默認(rèn)打包插件,用來創(chuàng)建 project jar -->
maven-jar-plugin
<!-- 2. 用來打可執(zhí)行包 -->
maven-shade-plugin
<!-- 3. 支持定制化打包方式,例如 apache 項(xiàng)目的打包方式 -->
maven-assembly-plugin
<!-- 4. springboot打包插件 -->
spring-boot-maven-plugin
3. SpringBoot 打包
Spring Boot 中默認(rèn)打包成可執(zhí)行 jar ,可以通過 java -jar xxx.jar 命令執(zhí)行但是不可以被其他的應(yīng)用所依賴。普通的 jar 不可以通過 java -jar xxx.jar 命令執(zhí)行,普通的 jar 主要是被其他應(yīng)用或模塊依賴。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
如上springboot引導(dǎo)程序生成的pom.xml文件中默認(rèn)的maven插件,其打包的Jar包可以直接運(yùn)行,但是不可依賴!
如果子模塊被打包成可運(yùn)行 jar 包則 SpringBoot 項(xiàng)目編譯運(yùn)行時(shí)提示“程序包xxx不存在,找不到符號”錯(cuò)誤。我們可以通過<classifier>exec</classifier>
標(biāo)簽在打包的時(shí)候生成普通jar包和可執(zhí)行jar包,修改如下:文章來源:http://www.zghlxwxcb.cn/news/detail-711321.html
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<classifier>exec</classifier>
</configuration>
</plugin>
</plugins>
</build>
或者通過<skip>true</skip>
標(biāo)簽在打包的時(shí)候生成普通jar包,修改如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-711321.html
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
到了這里,關(guān)于SpringBoot 使用 Maven 打包提示“程序包xxx不存在,找不到符號”錯(cuò)誤的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!