Spring-boot構建多模塊依賴工程時,maven打包異常:程序包xxx不存在
在qizhi項目改版的時候, 所有代碼都遷移好了, 但是compile的時候報程序包*****不存在, 具體到某一個類就是: 找不到符號. 下面這篇文章是正解
http://hbxflihua.iteye.com/blog/2431537
具體內容如下:
===========================+===========================+===========================+
項目
dw(父類工程,定義各模塊,指定模塊依賴jar版本)
|------------------------------
|--da-core 核心代碼
|
|--da-manage 後臺管理,依賴da-core
|
|--da-api API接口,依賴da-api
|
|--da-demo API接口DEMO
通過maven命令:mvn clean package -Dmaven.test.skip 進行打包編譯報錯,錯誤信息如下:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project dw-manage: Compilation failure: Compilation failure:
[ERROR] /xxx.java:[16,39] 程序包com.xx..xxx不存在
程序包是da-core工程的包,解壓編譯的jar文件發現該jar本打包成了spring-boot的可執行jar,這不是我想要的結果。
原有的da-core包中maven插件配置如下:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
調整後如下:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <classifier>exec</classifier> </configuration> </plugin> </plugins> </build>
spring-boot工程打包編譯時,會生成兩種jar包,一種是普通的jar,另一種是可執行jar。默認情況下,這兩種jar的名稱相同,在不做配置的情況下,普通的jar先生成,可執行jar後生成,所以可執行jar會覆蓋普通的jar。
===========================+===========================+===========================+===========================+
Spring-boot構建多模塊依賴工程時,maven打包異常:程序包xxx不存在