1. 程式人生 > >Spring-boot構建多模組依賴工程時,maven打包異常:程式包xxx不存在

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。

===========================+===========================+===========================+===========================+